* fix: typo in contribution guidelines, update project metadata and pull_request_temp...md (#5010)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* bump copyright year
resolves #5017
* feat: update light mode UI sidebar (#4996)
* implement light mode sidebar redesign
* Abstract hardcoded hex values into reusable css variables
* reorder ternary and apply bold font on hovered workspaces
* Remove double icon hack and use a state tracking whether workspace item is being hovered over for fill styles
* lint
* convert css variables and custom classes to default tailwind classes
* remove grab icon filling on hover logic
* revert css vars to original values
* remove light mode css vars | change bg of sidebar in light mode to right color | make icons correct color in light mode
* revert dark mode change
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix(frontend): fix event listener memory leak in useIsDisabled hook (#5027)
fix: optimize event listener management in useIsDisabled hook
* feat: dedicated dark theme option with system preference support (#5007)
* implement OS level theme switching and dark mode option
* simplify
* fix logo bug in login | place back useTheme comment
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix cleanup pr workflow
* Implement new home page redesign (#4931)
* remove legacy home page components, update home page to new layout
* update PromptInput component styles to match new designs, make quick action buttons functional
* home page chat creates new thread in last used workspace
* fix slash commands and agent popup on home page
* disable llm workspace selector action in home page
* add drag and drop file support to home page
* fix behavior of drag and drop on home page
* handle pasting attachments in home page
* update empty state of workspace chat to use new ui
* update empty workspace ui to match home page design, fix flickering loading states
* convert quick action buttons to component, add to empty state ws chat
* fix hover state light mode in quick actions
* add suggested messages subcomponent to empty ws/thread
* adjust width, rounded edges of prompt input
* only show quick actions for admin/manager role
* fix hover states for quick actions and suggested messages component
* make upload document quick action trigger parsed document upload
* fix mic behavior in homepage, ws chat, ws thread chat
* fix margin between prompt input and quick actions
* Simplify message presets by removing heading input (#4915)
* Remove heading input from message presets, merge legacy headings on edit
* filter out empty messages from state after saving
* mark form as dirty on input change
* styling
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* convert SuggestedMessages to component, render SuggestedMessages in home page to target ws
* fix broken handleMessageChange reference
* add translations for QuickActions
* lint
* fix home page chat submission broken by PromptInput onChange removal
* fix prompt input remount race condition, home page suggested message flicker
* remove unused handleSendSuggestedMessage from ChatHistory
* add greeting text to main-page translations, remove defaults
* fix file deletion in parsed files menu on home page
* add virtual thread sidebar state and workspace indicator on home page
* show workspace llm selector on home page when workspace exists
* show home page for all user roles with rbac quick actions
* fix positioning of agent and slash command popups
* remove workspace indicator from home page, match empty state spacing
* Normalize translations for home page redesign (#4986)
* normalize translations
* update translations with DMR
* accidentally changed es translation
* normalize translations for main-page.greeting
* update translations with DMR
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* update translations
* create new workspace in native language
Cleanup workspace page from empty state handling
* update quick action show logic
* fix send button
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: GitLab connector infinite loop and rate limit crash for large repos (#5021)
* Fix infinite loop and rate limit crashes
* simplify logic | add max-retries to fetchNextPage and fetchSingleFileContents
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: add password character validation to onboarding single-user setup (#5037)
* fix single user mode password bug
* share const
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Native Tool calling (#5071)
* checkpoint
* test MCP and flows
* add native tool call detection back to LMStudio
* add native tool call loops for Ollama
* Add ablity detection to DMR (regex parse)
* bedrock and generic openai with ENV flag
* deepseek native tool calling
* localAI native function
* groq support
* linting, add litellm and OR native tool calling via flag
* fix: resolve Gemini agent 400 error on tool call responses (#5054)
* add gtc__ prefix to tool call names in Gemini agent message formatting
* resolve Gemini agent 400 error on tool call responses
* add comments explaining geminis thought signatures
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement (#5053)
prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* lint
* Normalize scraper runtimeargs for bulk-scraper (#5083)
resolves #5078
closes #5079
* resolve Ollama string strict num_ctx
resolves #5081
* Lemonade integration (#5077)
* lemonade integration
* lemonade embedder
* log
* load model
* readme updates
* update embedder privacy entry
* fix max tool call stack abort flow
* v1.11.1 Release tags (#5107)
bump tag
* 5112 or stream metrics and finish reason (#5117)
* update metric tracking for OR + fix finish_reason missing from transitive chunks
* linting + comments
closes #5113
resolves #5112
* Fix bug where `yarn setup:envs` fails if any .env file already exists. (#5116)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: show actionable error when LMStudio model listing fails or returns empty (#5131)
* fix: show actionable error when LMStudio model listing fails or returns empty
When the model listing request completes but returns no models (due to
connection failure, wrong URL, or server unreachable), the dropdown now
shows "No models found — check LMStudio is running and accessible"
instead of "--loading available models--", making it possible to
distinguish a failed request from one still in progress.
Affects both LLM and embedding provider selection components.
Closes recurring UX confusion reported in #3519, #1338, #3656.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* UI warning tooltip
---------
Co-authored-by: Morgan Giddings <morgan@MG-Mac-Studio.home.arpa>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add automatic chat mode with native tool calling support (#5140)
Introduces a new automatic chat mode (now the default) that automatically invokes tools when the provider supports native tool calling. Conditionally shows/hides the @agent command based on whether native tooling is available.
- Add supportsNativeToolCalling() to AI providers (OpenAI, Anthropic, Azure always support; others opt-in via ENV)
- Update all locale translations with new mode descriptions
- Enhance translator to preserve Trans component tags
- Remove deprecated ability tags UI
* Revert "Add automatic chat mode with native tool calling support (#5140)"
- Need to support documents in agents
- Need to support images in agent mode
This reverts commit 4c69960dca.
* improve translation script
* patch attempt for GH cleanup tag
* workflow -wip
* fix type
* split cleanup
* vague GH worker error - try to resolve via repo-name
* Test dispatch workflow
* Remove test workflow
* native tool calling detection for novita
* fix sidebar and add translations to sidebar
* add translations
* Sidebar updates (#5154)
* fix sidebar and add translations to sidebar
* add translations
* Debug cleanup workflow
* Debug cleanup workflow
* Debug cleanup workflow
* Use ALLM_RW_PACKAGES for package cleanup
* Remove Google web-search Programmable SERP (#5156)
* refactor: refactor agent skills settings page to use i18n translation keys (#5146)
* refactor agent skills to read from translation keys instead of hardcoded strings
* add missing sql agent description key
* Remove fallbacks
* adjust translation
* swap to factor pattern
* normalize translations (#5147)
* normalize translations
* run translator job
* translations
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint to `/collector` (#5128)
* add eslint config to /collector
* prettier formatting
* fix unused
* fix undefined
* disable lines
* lockfile
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint to `/server` (#5126)
* add eslint config to server
* add break statements to switch case
* add support for browser globals and turn off empty catch blocks
* disable lines with useless try/catch wrappers
* format
* fix no-undef errors
* disbale lines violating no-unsafe-finally
* ignore syncStaticLists.mjs
* use proper null check for creatorId instead of unreachable nullish coalescing
* remove unneeded typescript eslint comment
* make no-unused-private-class-members a warning
* disable line for no-empty-objects
* add new lint script
* fix no-unused-vars violations
* make no-unsued-vars an error
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Fix: Azure OpenAI model key collision (#5092)
* fix: Migrate AzureOpenAI model key from OPEN_MODEL_PREF to prevent the naming collision. No effort necessary from current users.
* test: add backwards compat tests for AzureOpenAI model key migration
* patch missing env example file
* linting
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: Add tooltip for paperclip attach button when no files are parsed (#5139)
* fix broken tooltip
* fix tooltip not showing on homepage
* fix tooltip rendering behind input on homepage
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
* fix: add missing /wiki to Confluence cloud citation URLs (#5167)
fix: add /wiki to Confluence cloud page URLs in citations
* Strip thinking from copy message outputs (#5179)
* linting & show descriptive error for bad `addtoWorkspace` request body
resolves #5172
* Add custom fetch to embedder for Ollama (#5180)
Refactor ollama timeout to be shared. Add custom fetch to embedder for ollama as well
* chore: add script to detect and prune unused translation keys (#5141)
* add script to prune dead translation keys
* add support for dynamic translation keys
* improve performance of script
* fix dynamic t() detection and add keyboard shortcut keys to allowlist
* rename scripts
* change commands
---------
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* chore: add ESLint CI workflow (#5160)
add lint CI GitHub Action
* patch plural keys
* add ToS for brevity
* Remove `use_mlock` from Ollama to solve `WARN` logs in ollama 0.17
resolves #5182
* Implement v2 chat layout designs (#5074)
* New chat history layout with chat bubbles (#4985)
* new chat history layout, remove message alignment setting
* remove orphaned chat alignment hook and MessageDirection
* remove workspace profile picture setting and fetch
* clean up unnecessary changes
* add light mode colors to chat ui and main page backgrounds
* update chat message and action icon colors for light mode
* update thinking and agent ui, layout, sizing
* update user message uploaded images ui
* update thought, agent containers to use new colors
* add truncatable content with gradient to user chat messages
* fix citations margin
* implement new edit message UI with save and submit actions
* add translations for TruncatableContent subcomponent
* remove unused props
* fix text colors for default mode chats, agent, thoughts container
* Normalize translations for new chat history layout (#5022)
* normalize translations
* update translations with DMR
* lint
* fix mismatched home container colors
* fix: add password character validation to onboarding single-user setup (#5037)
* fix single user mode password bug
* share const
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Native Tool calling (#5071)
* checkpoint
* test MCP and flows
* add native tool call detection back to LMStudio
* add native tool call loops for Ollama
* Add ablity detection to DMR (regex parse)
* bedrock and generic openai with ENV flag
* deepseek native tool calling
* localAI native function
* groq support
* linting, add litellm and OR native tool calling via flag
* fix: resolve Gemini agent 400 error on tool call responses (#5054)
* add gtc__ prefix to tool call names in Gemini agent message formatting
* resolve Gemini agent 400 error on tool call responses
* add comments explaining geminis thought signatures
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* fix: prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement (#5053)
prevent CMD/CTRL+Arrow scroll from overriding textarea cursor movement
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* linting, assistant speaker spacing and order, copy/edit order
---------
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Implement new citations UI (#5038)
* new chat history layout, remove message alignment setting
* remove orphaned chat alignment hook and MessageDirection
* remove workspace profile picture setting and fetch
* clean up unnecessary changes
* add light mode colors to chat ui and main page backgrounds
* update chat message and action icon colors for light mode
* update thinking and agent ui, layout, sizing
* update user message uploaded images ui
* update thought, agent containers to use new colors
* add truncatable content with gradient to user chat messages
* fix citations margin
* implement new edit message UI with save and submit actions
* add translations for TruncatableContent subcomponent
* remove unused props
* fix text colors for default mode chats, agent, thoughts container
* Normalize translations for new chat history layout (#5022)
* normalize translations
* update translations with DMR
* lint
* fix mismatched home container colors
* implement new citations ui with sources sidebar
* bottom sheet for mobile citations
* convert mobile citations bottom sheet to new modal design
* add score, border separators for mobile citations modal
* push down sources sidebar in password/multiuser mode
* fix animation gap, simplify sources sidebar by splitting state to persist data on animation
* add english translations
* fix spacing from citations sidebar when user has auth
* Normalize translations for new citation UI (#5087)
* normalize translations
* update translations using DMR
* fix pluralize to use i18n native solution
change reset to immediate clear
fix spacing for TTS when showing or not to not have space
* proper pluralize
* hide metrics on mobile, fix last message padding on mobile
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* New prompt input ui/tools menu (#5070)
* wip new prompt input ui/tools menu
* fix colors for prompt input
* redesign workspace llm selector, extract text size + model picker to components
* refactor ToolsMenu component
* fix colors/refactor WorkspaceModelPicker
* fix spacing in ws model picker, change order of tools menu tabs
* fix slash commands showing /reset instead of /exit during active agent session
* refactor ToolsMenu to be much simpler
* cleanup, fix behavior of setupup provider in WorkspaceModelPicker
* simplify AgentSkillsTab toggle logic
* add english translations for new components
* remove legacy slash command/agent popups, add ToolsMenu keyboard nav
* fix spacing of workspace model picker text
* fix SourcesSidebar and TextSizeMenu positioning after merge
* fix keyboard nav in ToolsMenu when clicking on tools button to open
* typo
* only auto pop up tools menu when prompt input is empty with /
* fix z index for tools menu on citation
* fix behavior of / in prompt input
* move global window agent session state to module level variable
* fix prompt input not clearing on /reset
* missing translations
* revert translating slash command
* fix STT auto-submit not working on home page
* Normalize translations for new prompt input/tools menu UI (#5130)
* normalize translations
* update translations using DMR script
* normalize translations
* update translations using DMR script
* remove slash_exit
* fix skills.js import after merge
* fix tooltip z-index rendering behind citations
* patch translation prune script to not remove special cases
* updates to tools input
* factory translations
* use safeJsonParse in clearPromptInputDraft
* normalize translations
* disable agent skill toggles during active agent sessions + show tooltip on disabled
* normalize translations
* handle enter key behavior when tools menu is open
* fix unfocusable modal for slash command edit/new
* fix sending prompt when editing/creating slash commands
* hide/show agent skills in tools menu based on role
* container borders for dark/light mode compliance to designs
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* update how tooltip works for agent menu
* update prompt input to show agent button with CTA in agent panel for user clarify
update agent session start prompt button in input
* translations
* translations + move regex for slash commands to constants
* fix open sidebar ux
* fix tools menu to always open to slash commands, dismiss auto pop up
* fix sidebar open/close button overlapping with ws model picker
---------
Co-authored-by: Sean Hatfield <seanhatfield5@gmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
* patch slashcommand popup to be usePortal
* Improve zh_TW Traditional Chinese locale
* Improve zh_TW Traditional Chinese locale (#5187)
* lint
* fix schema not persisting in DB connector
* Improve build times for tests and lint (#5193)
* test build skip
* reset file
* Support Agent stream metric reporting (#5197)
* Report citations for Agent call stacks (#5199)
* sanitize promptReply Output
* Add FileRow Indentation on Documents Picker (#5201)
* Fix SQL injection in SQL Agent plugin via parameterized queries
Replace string concatenation with parameterized queries in all database
connectors to prevent SQL injection through LLM-generated table names.
Changes:
- PostgreSQL: Use $1, $2 placeholders with pg client parameterization
- MySQL: Use ? placeholders with mysql2 execute() prepared statements
- MSSQL: Use @p0 placeholders with request.input() parameterization
- Update handlers to support parameterized query objects
- Add formatQueryForDisplay() for logging parameterized queries
Security: Mitigates potential SQL injection when LLM passes unsanitized
user input as table_name parameter to getTableSchemaSql/getTablesSql.
GHSA-jwjx-mw2p-5wc7
* Align Manager API access with frontend access
GHSA-wfq3-65gm-3g2p
* Enforce user suspension check on browser extension API key path
Previously, suspended users could continue using browser extension
endpoints if they had created an API key before suspension. The normal
JWT session path blocked suspended users, but the browser extension
middleware did not.
Changes:
- Add suspension and user existence checks to validBrowserExtensionApiKey
- Delete browser extension API keys when a user is deleted
- Add deleteAllForUser method to BrowserExtensionApiKey model
GHSA-7754-8jcc-2rg3
* Fix potential Zip Slip path traversal in community plugin import
Validate all ZIP entries before extraction in importCommunityItemFromUrl()
to prevent path traversal attacks (CWE-22). Malicious ZIP entries with
paths like "../../" could write files outside the intended plugin folder.
Requires admin privileges and explicit opt-in to unverified hub downloads.
GHSA-rh66-4w74-cf4m
* Remove `WelcomeMessages` from app - no longer used (#5206)
* remove `WelcomeMessages` from app - no longer user
* update erronous alert message
* fix job collision ref
* fix jobs - remove dev job
* Fix potential IDOR vulnerability in workspace parsed files endpoints
Add ownership validation to prevent users from deleting or embedding
parsed files that don't belong to them. Previously, the delete and
embed endpoints only validated authentication but not resource ownership,
allowing users to delete attached files for users within workspaces they are also a member of.
Changes:
- Delete endpoint now filters by userId and workspaceId
- Embed endpoint validates file belongs to user and workspace (redundant)
- delete() returns false when no matching records found (returns 403)
- Added JSDoc comments for clarity
GHSA-p5rf-8p88-979c
* add user id to chat feedback
update JSDOC on middleware for typedef
GHSA-2qmm-82f7-8qj5
* feat: Add document count indicators to workspace document management modal (#5207)
* add document counts to non-embedded and embedded documents
* Update logic to not count search filtered documents
* refactor how count is done and rendered
* translations
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat(agents): Add Perplexity Search API as web search provider (#5210)
* feat(agents): Add Perplexity Search API as web search provider
Adds Perplexity as a search provider for the agent web-browsing plugin,
using the Perplexity Search API (POST /search) which returns raw ranked
web results — distinct from the existing Perplexity LLM integration.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: replace docs.perplexity.ai with console.perplexity.ai
* chore: replace docs.perplexity.ai with console.perplexity.ai
---------
Co-authored-by: kesku <kesku@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* bump version tag 1.11.2
* update exa search provider description (#5225)
* update exa search provider description
Co-Authored-By: ishan <ishan@exa.ai>
* update exa search provider description
Co-Authored-By: ishan <ishan@exa.ai>
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ishan <ishan@exa.ai>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Automatic mode for workspace (Agent mode default) (#5143)
* Add automatic chat mode with native tool calling support
Introduces a new automatic chat mode (now the default) that automatically invokes tools when the provider supports native tool calling. Conditionally shows/hides the @agent command based on whether native tooling is available.
- Add supportsNativeToolCalling() to AI providers (OpenAI, Anthropic, Azure always support; others opt-in via ENV)
- Update all locale translations with new mode descriptions
- Enhance translator to preserve Trans component tags
- Remove deprecated ability tags UI
* rebase translations
* WIP on image attachments. Supports initial image attachment + subsequent attachments
* persist images
* Image attachments and updates for providers
* desktop pre-change
* always show command on failure
* add back gemini streaming detection
* move provider native tooling flag to Provider func
* whoops - forgot to delete
* strip "@agent" from prompts to prevent weird replies
* translations for automatic-mode (#5145)
* translations for automatic-mode
* rebase
* translations
* lint
* fix dead translations
* change default for now to chat mode just for rollout
* remove pfp for workspace
* passthrough workspace for showAgentCommand detection and rendering
* Agent API automatic mode support
* ephemeral attachments passthrough
* support reading of pinned documents in agent context
* MCP tool manager (#5230)
* MCP tool manager
* Mcp tool manager i18 (#5231)
i18n translations for MCP manager changes
connect #5230
* fix bad i18n key
* Intelligent Skill Selection (#5236)
* Beta Intelligent Tooling
todo: Agent Skill banner warning when tool # is high or % of content window?
* forgot files
* add UI controls and maxToolCallStack setting
* update docs link
* ISS i18n (#5237)
i18n
* README updates (#5238)
* README updates
* Update README.md
* Update README.md
* remove unused images
* updates
* copy updates
* fix(collector): infer file extension from Content-Type for URLs without explicit extensions (#5252)
* fix(collector): infer file extension from Content-Type for URLs without explicit extensions
When downloading files from URLs like https://arxiv.org/pdf/2307.10265,
the path has no recognizable file extension. The downloaded file gets
saved without an extension (or with a nonsensical one like .10265),
causing processSingleFile to reject it with 'File extension .10265
not supported for parsing'.
Fix: after downloading, check if the filename has a supported file
extension. If not, inspect the response Content-Type header and map
it to the correct extension using the existing ACCEPTED_MIMES table.
For example, a response with Content-Type: application/pdf will cause
the file to be saved with a .pdf extension, allowing it to be processed
correctly.
Fixes #4513
* small refactor
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* feat: add Lithuanian locale and register in resources (#5243)
* feat: add Lithuanian locale and register in resources
* sync
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Telegram bot connector (#5190)
* wip telegram bot connector
* encrypt bot token, reorg telegram bot modules, secure pairing codes
* offload telegram chat to background worker, add @agent support with chart png rendering, reconnect ui
* refactor telegram bot settings page into subcomponents
* response.locals for mum, telemetry for connecting to telegram
* simplify telegram command registration
* improve telegram bot ux: rework switch/history/resume commands
* add voice, photo, and TTS support to telegram bot with long message handling
* lint
* rename external_connectors to external_communication_connectors, add voice response mode, persist chat workspace/thread selection
* lint
* fix telegram bot connect/disconnect bugs, kill telegram bot on multiuser mode enable
* add english translations
* fix qr code in light mode
* repatch migration
* WIP checkpoint
* pipeline overhaul for using response obj
* format functions
* fix comment block
* remove conditional dumpENV + lint
* remove .end() from sendStatus calls
* patch broken streaming where streaming only first chunk
* refactor
* use Ephemeral handler now
* show metrics and citations in real GUI
* bugfixes
* prevent MuM persistence, UI cleanup, styling for status
* add new workspace flow in UI
Add thread chat count
fix 69 byte payload callback limit bug
* handle pagination for workspaces, threads, and models
* modularize commands and navigation
* add /proof support for citation recall
* handle backlog message spam
* support abort of response streams
* code cleanup
* spam prevention
* fix translations, update voice typing indicator, fix token bug
* frontend refactor, update tips on /status and voice response improvements
* collapse agent though blocks
* support images
* Fix mime issues with audio from other devices
* fix config issue post server stop
* persist image on agentic chats
* 5189 i18n (#5245)
* i18n translations
connect #5189
* prune translations
* fix errors
* fix translation gaps
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Add User-Agent header for Anthropic API calls (#5174)
* Add User-Agent header for Anthropic API calls
Passes User-Agent: AnythingLLM/{version} to the Anthropic SDK
so Anthropic can identify traffic from AnythingLLM.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* remove test, simplify header default
* unset change to spread
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* add Dynamic `max_tokens` retreival for Anthropic models (#5255)
* fix Firefox LaTeX rendering (#5258)
* fix pruned translations
* whitelist valid dynamic translation
* add ask to run prompt for tool calls (demo) (#5261)
* add ask to run prompt for tools
* border-none on buttons
* translations
* linting
* i18n (#5263)
* extend approve/deny requests to telegram
* break up handler
* Refactor onboarding welcome screen to v2 design (#5262)
* refactor onboarding home page to v2 design
* fixc typography and buttons
* refactor useTheme to return isLight variable | call useTheme from inside SVG component | apply light mode background gradient | polish styles to match designs
* add welcome i18n
* simplify isLight variable
* add new welcome translation key to locales
* delete unused images
* move OnboardingLogoSVG into module | compute isLight directly in component
* add type button | add border-none | add hover state
* update hook with doc
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* Filesystem Agent Skill overhaul (#5260)
* wip
* collector parse fixes
* refactor for class and also operation for reading
* add skill management panel
* management panel + lint
* management panel + lint
* Hide skill in non-docker context
* add ask-prompt for edit tool calls
* fix dep
* fix execa pkg (unused in codebase)
* simplify search with ripgrep only and build deps
* Fs skill i18n (#5264)
i18n
* add copy file support
* fix translations
* fix es translation entry
* feat : auto-select newly uploaded docs/URLs in my documents list (#5222)
* auto-select newly uploaded docs/URLs in My Documents list
* fix: improve auto-select reliability and fix debounce/selection bugs
- Add missing `await` on fetchKeys in handleSendLink so loading state
and auto-select timing work correctly
- Use functional update for setSelectedItems to merge with existing
selections instead of replacing them
- Stabilize debounced fetchKeys with useRef so rapid uploads actually
debounce instead of creating independent timers per render
- Rename shadowed local variables (availableDocs -> filteredAvailableDocs)
for clarity
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* remove legacy cost estimate for embedding
* feat: add missing Lemonade LLM provider env vars to .env.example (#5275)
add llm provider lemonade env vars to .env.example
* fix openapi spec
* feat: add optional API key support for Lemonade provider (#5281)
* add API key param to Lemonade LLM Provider and Embedding Provider
* add LEMONADE_LLM_API_KEY to .env.example
* add api key to aibitat provider
* fix api key from being sent to frontend
* fix tooltip id
* add null fallback for `apiKey`
* remove console log
* add missing api keys
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* File creation agent skills (#5280)
* Powerpoint File Creation (#5278)
* wip
* download card
* UI for downloading
* move to fs system with endpoint to pull files
* refactor UI
* final-pass
* remove save-file-browser skill and refactor
* remove fileDownload event
* reset
* reset file
* reset timeout
* persist toggle
* Txt creation (#5279)
* wip
* download card
* UI for downloading
* move to fs system with endpoint to pull files
* refactor UI
* final-pass
* remove save-file-browser skill and refactor
* remove fileDownload event
* reset
* reset file
* reset timeout
* wip
* persist toggle
* add arbitrary text creation file
* Add PDF document generation with markdown formatting (#5283)
add support for branding in bottom right corner
refactor core utils and frontend rendering
* Xlsx document creation (#5284)
add Excel doc & sheet creation
* Basic docx creation (#5285)
* Basic docx creation
* add test theme support + styling and title pages
* simplify skill selection
* handle TG attachments
* send documents over tg
* lazy import
* pin deps
* fix lock
* i18n for file creation (#5286)
i18n for file-creation
connect #5280
* theme overhaul
* Add PPTX subagent for better results
* forgot files
* Add PPTX subagent for better results (#5287)
* Add PPTX subagent for better results
* forgot files
* make sub-agent use proper tool calling if it can and better UI hints
* add batching Intelligent Tool Selector for performance and scoring
* Automatic mode is now default
* show links in /proof on TG
* Redesign Telegram bot settings UI (#5306)
* redesign telegram bot settings ui/refactor ui components
* fix positioning of user row
* move ConnectedBotCard to subcomponent
* fix redirect
* remove redundant guard
---------
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
* remove log
* Fix chat UI event listener bloat (#5323)
* version bump
* translations
---------
Co-authored-by: Dipanshu Rawat <dv451197@gmail.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Brian Pursley <bpursley@cinlogic.com>
Co-authored-by: Morgan <morgan@scifoundry.com>
Co-authored-by: Morgan Giddings <morgan@MG-Mac-Studio.home.arpa>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Ryan <RALaBarge@users.noreply.github.com>
Co-authored-by: Maxwell Calkin <101308415+MaxwellCalkin@users.noreply.github.com>
Co-authored-by: Peter Dave Hello <hsu@peterdavehello.org>
Co-authored-by: Peter Dave Hello <3691490+PeterDaveHello@users.noreply.github.com>
Co-authored-by: Kesku <62210496+kesku@users.noreply.github.com>
Co-authored-by: kesku <kesku@users.noreply.github.com>
Co-authored-by: Ishan Goswami <ishangoswami315@gmail.com>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: ishan <ishan@exa.ai>
Co-authored-by: Yitong Li <yitongli0814@gmail.com>
Co-authored-by: arvydev <55648027+arvydev@users.noreply.github.com>
Co-authored-by: Mike Lambert <mlambert@gmail.com>
Co-authored-by: Neha Prasad <neh6a683@gmail.com>
23 KiB
AnythingLLM: The all-in-one AI app you were looking for.
Chat with your docs, use AI Agents, hyper-configurable, multi-user, & no frustrating setup required.
|
|
Docs
|
Hosted Instance
👉 AnythingLLM for desktop (Mac, Windows, & Linux)! Download Now
Chat with your docs. Automate complex workflows with AI Agents. Hyper-configurable, multi-user ready, battle-tested—and runs locally by default with zero setup friction.
Product Overview
AnythingLLM is the all-in-one AI application that lets you build a private, fully-featured ChatGPT—without compromises. Connect your favorite local or cloud LLM, ingest your documents, and start chatting in minutes. Out of the box you get built-in agents, multi-user support, vector databases, and document pipelines — no extra configuration required.
AnythingLLM supports multiple users as well where you can control the access and experience per user without compromising the security or privacy of the instance or your intellectual property.
Cool features of AnythingLLM
- Intelligent Skill Selection Enable unlimited tools for your models while reducing token usage by up to 80% per query
- No-code AI Agent builder
- Full MCP-compatibility
- Multi-modal support (both closed and open-source LLMs!)
- Custom AI Agents
- 👤 Multi-user instance support and permissioning Docker version only
- 🦾 Agents inside your workspace (browse the web, etc)
- 💬 Custom Embeddable Chat widget for your website Docker version only
- 📖 Multiple document type support (PDF, TXT, DOCX, etc)
- Intuitive chat UI with drag-and-drop uploads and source citations.
- Production-ready for any cloud deployment.
- Works with all popular closed and open-source LLM providers.
- Built-in optimizations for large document sets—lower costs and faster responses than other chat UIs.
- Full Developer API for custom integrations!
- ...and much more—install in minutes and see for yourself.
Supported LLMs, Embedder Models, Speech models, and Vector Databases
Large Language Models (LLMs):
- Any open-source llama.cpp compatible model
- OpenAI
- OpenAI (Generic)
- Azure OpenAI
- AWS Bedrock
- Anthropic
- NVIDIA NIM (chat models)
- Google Gemini Pro
- Hugging Face (chat models)
- Ollama (chat models)
- LM Studio (all models)
- LocalAI (all models)
- Together AI (chat models)
- Fireworks AI (chat models)
- Perplexity (chat models)
- OpenRouter (chat models)
- DeepSeek (chat models)
- Mistral
- Groq
- Cohere
- KoboldCPP
- LiteLLM
- Text Generation Web UI
- Apipie
- xAI
- Z.AI (chat models)
- Novita AI (chat models)
- PPIO
- Gitee AI
- Moonshot AI
- Microsoft Foundry Local
- CometAPI (chat models)
- Docker Model Runner
- PrivateModeAI (chat models)
- SambaNova Cloud (chat models)
- Lemonade by AMD
Embedder models:
- AnythingLLM Native Embedder (default)
- OpenAI
- Azure OpenAI
- LocalAI (all)
- Ollama (all)
- LM Studio (all)
- Cohere
Audio Transcription models:
- AnythingLLM Built-in (default)
- OpenAI
TTS (text-to-speech) support:
- Native Browser Built-in (default)
- PiperTTSLocal - runs in browser
- OpenAI TTS
- ElevenLabs
- Any OpenAI Compatible TTS service.
STT (speech-to-text) support:
- Native Browser Built-in (default)
Vector Databases:
Technical Overview
This monorepo consists of six main sections:
frontend: A viteJS + React frontend that you can run to easily create and manage all your content the LLM can use.server: A NodeJS express server to handle all the interactions and do all the vectorDB management and LLM interactions.collector: NodeJS express server that processes and parses documents from the UI.docker: Docker instructions and build process + information for building from source.embed: Submodule for generation & creation of the web embed widget.browser-extension: Submodule for the chrome browser extension.
🛳 Self-Hosting
Mintplex Labs & the community maintain a number of deployment methods, scripts, and templates that you can use to run AnythingLLM locally. Refer to the table below to read how to deploy on your preferred environment or to automatically deploy.
| Docker | AWS | GCP | Digital Ocean | Render.com |
|---|---|---|---|---|
![]() |
![]() |
| Railway | RepoCloud | Elestio | Northflank |
|---|---|---|---|
![]() |
or set up a production AnythingLLM instance without Docker →
How to setup for development
yarn setupTo fill in the required.envfiles you'll need in each of the application sections (from root of repo).- Go fill those out before proceeding. Ensure
server/.env.developmentis filled or else things won't work right.
- Go fill those out before proceeding. Ensure
yarn dev:serverTo boot the server locally (from root of repo).yarn dev:frontendTo boot the frontend locally (from root of repo).yarn dev:collectorTo then run the document collector (from root of repo).
Telemetry & Privacy
AnythingLLM by Mintplex Labs Inc contains a telemetry feature that collects anonymous usage information.
More about Telemetry & Privacy for AnythingLLM
Why?
We use this information to help us understand how AnythingLLM is used, to help us prioritize work on new features and bug fixes, and to help us improve AnythingLLM's performance and stability.
Opting out
Set DISABLE_TELEMETRY in your server or docker .env settings to "true" to opt out of telemetry. You can also do this in-app by going to the sidebar > Privacy and disabling telemetry.
What do you explicitly track?
We will only track usage details that help us make product and roadmap decisions, specifically:
-
Type of your installation (Docker or Desktop)
-
When a document is added or removed. No information about the document. Just that the event occurred. This gives us an idea of use.
-
Type of vector database in use. This helps us prioritize changes when updates arrive for that provider.
-
Type of LLM provider & model tag in use. This helps us prioritize changes when updates arrive for that provider or model, or combination thereof. eg: reasoning vs regular, multi-modal models, etc.
-
When a chat is sent. This is the most regular "event" and gives us an idea of the daily-activity of this project across all installations. Again, only the event is sent - we have no information on the nature or content of the chat itself.
You can verify these claims by finding all locations Telemetry.sendTelemetry is called. Additionally these events are written to the output log so you can also see the specific data which was sent - if enabled. No IP or other identifying information is collected. The Telemetry provider is PostHog - an open-source telemetry collection service.
We take privacy very seriously, and we hope you understand that we want to learn how our tool is used, without using annoying popup surveys, so we can build something worth using. The anonymous data is never shared with third parties, ever.
[View all telemetry events in source code](https://github.com/search?q=repo%3AMintplex-Labs%2Fanything-llm%20.sendTelemetry(&type=code)
👋 Contributing
- Contributing to AnythingLLM - How to contribute to AnythingLLM.
💖 Sponsors
Premium Sponsors
All Sponsors











































🌟 Contributors
🔗 More Products
- VectorAdmin: An all-in-one GUI & tool-suite for managing vector databases.
- OpenAI Assistant Swarm: Turn your entire library of OpenAI assistants into one single army commanded from a single agent.
Copyright © 2026 Mintplex Labs.
This project is MIT licensed.





