Timothy Carambat 9c7eea4690 Render 1.16.0 (#6123)
* fix: scope thread lookup to validated workspace in middleware

The validWorkspaceAndThreadSlug middleware validates workspace membership
correctly but fetched threads without a workspace_id constraint, allowing
a user removed from workspace-A to still access their thread history via
any other workspace (workspace-B) they have access to.

Add workspace_id: workspace.id to WorkspaceThread.get() so the thread
must belong to the workspace the request is authorized for.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: FailSafe Researcher <joshua@getfailsafe.com>

* add ability to toggle agent tools during an active agent session

* rework mid-session tool toggling via websocket plugin and aibitat use/removeFunction

* gate mid-session agent tool toggle to admins in multi-user mode

* feat: increases the username character limit to 64

* add create-scheduled-job-tool

* navigate to edit job modal from scheduled job card

* switch to query params to follow pattern in codebase

* cleanup

* 1.15.0 tags (#5909)

* create normalizeWeekdays helper

* remove unneeded exports

* feat: add PostgreSQL SSL toggle and URL-encode SQL credentials

* fix: skip empty action in SQL connection update merge

* move create-schedule-job agent tool to an opt-in default Agent Skill

* cleanup skill filtering based on mode

* revert to original filtering

* Fixes typos and mistakes in Catalan translation

* Additional Catalan fixes

* Additional Catalan fixes

* Additional fixes

* Standarize on tasca

* linting

* fix: render kokoro-tts voice list for pre-0.3.x kokoro-fastapi servers

kokoro-fastapi changed its /v1/audio/voices response shape in 0.3.x:
older servers return voices as plain id strings ("af_bella") while newer
ones return { id, name } objects. customModels only read voice.id and
voice.name, so against the (still very common) string shape every voice
became { id: undefined, name: undefined } and the UI rendered an empty,
unselectable voice list.

Normalize both shapes to { id, name } so the voice list loads regardless
of the kokoro-fastapi version, falling back to the voice id when an object
omits its name.

* add translations

* convert getChatCompletion to stream the response and accumulate before returning | throw error back to the caller

* add try/catch around mcp.ping() ad mcp.listTools()

* Update Sponsors README

* fix: disable temperature for claude-sonnet-5 model

* feat: adds support for openai compatible whisper api

* update default fallback models for openai/anthropic

* Bump bree to enable execPath as an option
connect #5936
connect #5957

* rm test

* ignores

* open-computer

* update readme

* update readme

* tighten copy and image

* update README

* bump

* subagent patch

* examples

* copy

* wrong model caption

* readme bump

* break out downloaded models into its own optgroup

* lowercase "models" to match rest

* pin demos for open-computer

* Fix videos in readme.

* remove videos - got embed to work

* fix server type parsing and validation to match documented behavior

* add coverage for MCP server list surviving post-connection failures

* fix: only apply defaulty system prompt to new workspace creation when openAiPrompt is falsy

* init

* refactor to remove passing timezone
refactor tool to be more simple for local models since they can write cron
add card to go to job runs instead of edit
undo edit hook

* user meta cache for global use

* relocate scope for some utils

* fix tool for hallunicated sub-tools

* disable tool in MUM if previously enabled, ask before creation of job for security/peace of mind

* change maxTokens to contextWindowLimit

* add omlx to getModelTag()

* add fallback context window value for models that dont return max_model_len

* eagerly load omlx model context windows

* replace handrolled /v1/models fetch for OpenAI sdk

* move donwload models accumulator into useGetProvidersHook

* apply downloaded models option subgroup across other model pickers

* Update model version in use case demos

Updated the model version in use case demos for consistency.

;)

I'm actually watching your video right now, by the way. Nice! :)

By the way, my plan is to build a virtualized environment for running LLM-generated code - something like llm-sandbox - once I release a couple of other tools (should be in the next few days). The idea is to use lightweight virtual machines rather than QEMU. Although it looks like on macOS I'll probably have to borrow some of your experience with QEMU after all. If that's the case, I'll definitely reach out if I find or fix any bugs.

Also, feel free to message me if you ever need to test something. I have a Windows on ARM laptop, so I can run things whenever I have a few spare minutes.

Cheers!

* Fix scrollbar color on light mode

* open-computer: fix Windows x64 (WHPX) base image build and agent runtime

Several fixes so open-computer can build a base image and run agents on
Windows x64 with WHPX acceleration. Tested end to end on Windows 11 with an
AMD Ryzen 5 7600: base install, provision, prod build, and a running agent
serving the UI on localhost:9800.

- EFI vars: use the OVMF VARS template for the writable pflash instead of a
  copy of the CODE firmware. Copying CODE into the vars slot left OVMF with
  no variable store, so the guest never POSTed and the display stayed blank.
  Adds resolveEfiVars() and uses it in vm.ts and base install.
- WHPX CPU model: use -cpu Haswell for the x86_64 guest on Windows. -cpu host
  exposes APX/MPX on recent AMD CPUs, which WHPX rejects with "Unexpected VP
  exit code 4". The arm64 guest keeps host passthrough.
- Display adapter: use a standard VGA device on Windows. OVMF does not render
  to virtio-gpu over VNC on the bundled Windows QEMU build, so the installer
  and desktop were invisible.
- Installer ISO: attach it as a bootable CD-ROM during base install. It was
  checked for existence but never actually attached to the VM, so the
  installer could not boot.
- VNC display on Windows: the bundled QEMU build has no gtk display backend,
  so gui mode now uses -display none with -vnc for the install and console.
- Monitor socket cleanup: fs.rmSync on the AF_UNIX monitor socket throws
  EACCES on Windows. Added a removeMonitorSock() helper (cmd del fallback)
  used by base, control, and agents commands.
- qemu-img: base install now uses the bundled qemu-img via
  resolveQemuImgBinary() instead of a bare PATH lookup.
- Provisioning: allocate a PTY for the interactive ssh step so su can prompt
  for the root password during base provision.
- Prod build: run services/build.sh with Git Bash on Windows. A bare "bash"
  resolves to the WSL launcher, which does not have the Windows Node
  toolchain on its PATH.

Refs #5981

* open-computer: scope the EFI vars and ISO CD-ROM changes to Windows

Keep macOS and Linux behavior byte for byte identical to upstream. The EFI vars template copy and the q35 ide-cd ISO attach now only apply when process.platform is win32, since the ide.0 AHCI bus does not exist on the aarch64 virt machine used elsewhere.

* test: cover the Windows, macOS, and Linux QEMU arg builders

Extract the platform-branching logic (machine/accel/cpu, GPU device, ISO CD-ROM, EFI vars filename) into pure functions and add node:test unit tests via tsx. The tests pin the Windows x64 behavior (WHPX with Haswell, VGA, ide-cd install media, i386 vars template) and assert that macOS and Linux keep virtio-gpu and never get the q35-only ide-cd bus.

* fetch script and bundle script for base image

* forgot file

* fix MacOS device and qemu boot issues

* patch windows fetch debian

* remove dupe arg

* more windows patches

* fresh builds

* test: update isoDeviceArgs assertion to match usb-storage install media

The merge of PR #5982 changed base install media from an ide-cd device to usb-storage, but the unit test still asserted the old ide-cd device, so npm test failed on master. This updates the assertion to the usb-storage device id.

* linux QEMU fallback

* remove os prefix for images

* Patch API Citations regression

* patch Generic OpenAI bug for OSA with Magic Echo

* ignore ts tests

* add http://localhost:8000 and http://host.docker.internal:8000 to commone omlx urls

* remove Untooled comment

* change fallback context window value to 16000

* refactor handleDefaultStreamResponseV2 to conditionally break on finish_reason: stop | add usage collection for omlx streamChatCompletion

* add border-none to button

* transform icon to 300x300 with no trasnparent bg

* docs(bare-metal): fix env var name to match frontend/.env — VITE_API_BASE

* add getModelCapabilities for oMLX LLM provider

* patch for informational GHSA-p9pj-g2fw-q567 reported by @kameyamei

* Patch GHSA-vv8w-wg6r-hq56 from @GabrielGomesAL

* remove patch in global handler

* fix: preserve TTS audio content type

* Update common.js

* adjust regex to expand slash commands with surrounding whitespace + punctuation

* add tests for grepCommand + grepAllSlashCommands slash command expansion

* linting

* i18n: add Lao (lo) language support (#6039)

* Add Lao language support

* Add Lao language support to resources

* linting

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* feat(i18n): add Indonesian (id) language support - closes #4198 (#6037)

* feat(i18n): add Indonesian (id) language support - closes #4198

* feat(i18n): complete 100% deep Indonesian translations

* linting

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Inline MCP tool $ref/$defs schemas for Anthropic agent tool calls (#5786)

Anthropic's `input_schema` does not resolve local JSON-Schema references, so
MCP tools that describe nested parameters with `$ref`/`$defs` (e.g. Pydantic v2
nested models) were forwarded with dangling pointers, crashing the agent.

Inline local references and strip the definition blocks before building
`input_schema` so the schema is self-contained. Flat schemas are unchanged.
Recursive models collapse to a generic object and unresolvable references are
dropped rather than forwarded.

Resolves #3938

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* DiD improvement from informational GHSA-mc74-6fj4-gwxx by @joaovicdev

* 5846 auto scroll (#6046)

* patch scroll lock

* debounce scroll on message reset

* add toggle control for autoscroll

* translations

* i18n: add Croatian (hr) language support (#6052)

* feat(agents): add You.com as web search provider (#6058)

* feat(agents): add You.com as web search provider

Add You.com to the agent web-browsing skill with a keyless free-tier
default (api.you.com/v1/agents/search) and optional AGENT_YOU_API_KEY for
the keyed ydc-index.io Search API. Follows the existing Brave/Exa/fastCRW
provider wiring pattern.

* remove test

* update icon and copy

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* refactor: remove workspace profile picture feature (#6010)

* remove workspace pfp workspace table column, routes + handlers, and api services

* revert workspaces pfpFilename schema change and drop-column migration

* delete unused UserIcon svgs,  UserIcon component and ChatBubble component

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Add datetime to default system prompts (#6016)

* feat: inject datetime into default system prompts

* refactor to normalize all prompt callsites and var expansions

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Fix: Restore Stop Generation Button During Agent Session Execution Loop (#5970)

* restore stop generation button through agent chat

* remove unneeded event

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Update Sponsors README

* feat: folder upload with relative paths preserved in document manager (#6027)

* add folder uploading to document to document manager with relative paths preserved

* simplify relative path stamp logic

* lint

* entire refactor

* fix counter in search, refactor hook to work for files and hydration of add/remove files

* make every folder a dropzone

* improve file picker UX quirks for folder-in-folder uploads and checkbox state mgmt

* 6027 translations (#6064)

* translations for PR #6027

* fix weird translation artifacts

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* fix: keep watched document re-syncs from breaking pinned document de-duplication (#6029)

A pinned document is filtered out of similarity search results by comparing the
sourceIdentifier of the document on disk (title + published) against the identifier of
every returned chunk. The re-sync job embedded the new content with the old published
timestamp but then wrote a new one to disk, so after the first sync the identifiers no
longer matched and a document that was both pinned and watched was injected into the
context twice - once as full text and again as RAG chunks.

Stamp the vectors, the source document and every other workspace referencing it with the
same timestamp.

resolves #5334

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Add input_audio support for audio attachments on generic OpenAI provider (#6055)

* add input_audio support for audio attachments on generic openai provider

* handle audio attachments as input_audio on generic openai agent path

* handle audio on agent native tool path + extract shared attachment util

* add tests for shared attachment util + generic openai audio paths

Covers attachmentToContentBlock directly (audio format normalization, data
URI fallback, image_url with/without detail) and tightens the generic
openai provider tests with a beforeEach-constructed provider and restored
process.env between cases.

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Start model router cooldown after inference completes (#6047)

* start model router cooldown after inference completes instead of at rule detection

* remove comment

* fire model router cooldown re-stamp when agent loop completes

* re-stamp model router cooldown on every agent turn via onInterrupt/onTerminate

* add tests for model router cooldown re-stamp on every agent turn

* refactor to bypass prop-passing through agent flows

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* fix: validate workspace update payloads to prevent misleading 200 responses (#6070)

* fix: validate workspace update payloads to prevent misleading 200 responses

The /v1/workspace/{slug}/update endpoint returned HTTP 200 with a Prisma
error string when the request body contained an invalid value for a
writable field. lastUpdatedAt was the only writable field without a
validator, so non-date values were passed straight to Prisma, which
rejected them and returned the error inside a 200 response.

Add a lastUpdatedAt validator that coerces the value into a valid Date
(falling back to the current time), completing validation coverage for
every writable field. Also return a non-2xx status from the update
endpoint when the update fails so consumers can reliably detect errors
instead of parsing a success response for a failure message.

* cleanup comments

* expand test to all validators

* add validator meta tests

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* chore: route agent chats with no tools through native tooled completions (#6067)

* route requests with no tools into native tool calling completion handlers

* fix docblock

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* fix Bedrock model workspace selection (#6079)

* fix empty agent skill section in MuM (#6080)

* Reset agent clarifying-questions counter per turn (#6083)

* reset agent clarifying-questions counter per turn

* update comment

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* AWS Bedrock overhaul (#6081)

* AWS Bedrock overhaul

* Az model listing

* patch lemonade URL input bug

* feat: abort agent sessions end-to-end when the user stops generation (#6063)

* restore stop generation button through agent chat

* remove unneeded event

* init

* add _aborted checks in various sites

* optional chain aibitat.abort()

* wire in abort controllers for omlx and lemonade

* wire in abort signals to remning local AI agent providers

* refactor + coverage gaps

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Update Sponsors README

* docs: fix broken service links in open-computer README (#6088)

Two architecture links in open-computer/README.md pointed to files that
do not exist:

- The interface service link used ./services/server/index.js, but the
  service lives at ./services/interface-service/index.js.
- The memory manager entry point is server.js, not index.js.

Co-authored-by: richboyneedcash <273099414+richboyneedcash@users.noreply.github.com>
Co-authored-by: TRAE CLI <noreply@bytedance.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* update policy for UUID guessing

* clarify on user defined service URLs as well

* update security for repeated close issue archetypes

* fix dataconnector modal height and form height

* update security version support

* feat: add image generation via /img command (#5904)

* feat: add image generation via /img command

* clean up generated images when their thread is deleted

* pass generated images as context in follow-up chats

* improve image generation ux when no provider is configured

* fix img generation during active agent sessions

* fix ollama image generation returning no image data

* give image generation its own provider credentials separate from llm keys

* serve generated images asynchronously to avoid blocking the event loop

* render img command failures as chat errors instead of plain text

* default openai image generation to gpt-image models

* simplify image size handling with a configurable default

* regenerate openapi spec for image size example

* fix stale 512x512 image size references in env example + ui text

* normalize picker for Image Gen options

* fix light mode image card buttons
move cleanBaseURL of lemonade to common

* refactor image generation event/SSE

* add dimension picker + provider specific options, update card to retain output aspect ratio

* update slash command

* change file scope + cleanup and stagger orphan jobs

* Lemonade img dimensions

* add image editing and reference passing

* fix swagger issue

* update endpoint for API to edit images

* security patches and final pass

* lint and refactor i18n usage points

* translations (#6093)

* abort signal handling

* translations

* stagger startup jobs

* allow multiple image references for openai image gen

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* 6089 milvus count (#6095)

* fix system vector count for milvus

* fix count for Milvus/Ziillz

* feat: add Gitea data connector (#6087)

* feat: add Gitea data connector

Adds Gitea as a repository data connector alongside the existing GitHub
and GitLab connectors, closing #3744.

Gitea is always self-hosted, so the API base is derived from the origin of
the repository URL itself rather than being pinned to a known host. This
means no extra "base URL" field is needed - the repo URL a user already has
is enough.

Collector:
- GiteaRepoLoader talks to the Gitea v1 REST API: repository metadata for
  default branch resolution, paginated branch listing, recursive git tree
  traversal, and raw file content. Supports optional personal access tokens,
  ignore paths, rate-limit backoff, and degrades to public access when no
  token is supplied.
- Registered "gitea" in both repo loader resolvers. The collector and server
  repo routes are already generic over :repo_platform, so no new routes are
  required.
- Added a resync handler so watched Gitea documents can be refreshed. The
  chunk source stores the URL scheme explicitly, so http/https and
  non-standard ports survive the resync round trip.

Server:
- Allow "gitea" as a repo platform and as a watchable document type.

Frontend:
- Gitea connector UI with repo URL, optional access token, branch selector,
  and file ignore fields, plus citation support for gitea:// sources.

* add gitlab tracking as ad-hoc fix

* translations

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* border on bell for jobs

* bump gemini fallback list #6109

* Fix generic openai thinking parsers (#6105)

* Fix generic openai thinking parsers

* Fix reasoning/thinking display for generic OpenAI provider and agent mode

- Add shared `extractReasoningContent()` utility in responses.js that checks `reasoning_content`, `reasoning`, and `thinking` fields to support vLLM, DeepSeek, Ollama, and other providers
- Update generic OpenAI provider to use shared utility for both streaming and non-streaming reasoning extraction
- Add reasoning token capture to tooled and untooled agent paths, streaming thinking tokens live to the frontend
- Emit `</think>` closing tag after stream loop for tool-call-only iterations in tooled agent path
- Add `allowAnimation` prop to ThoughtChainComponent so only the actively streaming message shows the animated brain icon — older completed thought blocks show static icon
- Hide copy/TTS/action buttons on thinking-only messages with no visible content via `hasVisibleContent()` guard
- Skip rendering empty `<span>` when message content is only thinking tags

* parallelize linter job

* fix(i18n): correct zh-TW scheduled job labels (#6112)

Several scheduled-job labels used unrelated literal translations, such as rendering Run as jogging and Never run as an instruction. Correct the section with terminology that matches the actual job actions and execution history.

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* feat: stream PiperTTS playback + harden long-message TTS (#6114)

Bumps @mintplex-labs/piper-tts-web to ^1.0.5, which fixes the
onnxruntime-web init crash (allowLocalModels), works across ort 1.18-1.24
via the wasm-only build, and chunks long inference to avoid std::bad_alloc.

Frontend changes on top of that:
- Stream TTS audio per sentence chunk (worker  mode) so
  playback starts after the first chunk instead of waiting for the whole
  message to render
- Queue-based playback in the TTS button: auto-resumes if playback catches
  up to generation, distinguishes user pause from chunk-end, replays long
  messages instantly from cached chunks, and cannot hang on mid-stream errors
- Remove the 30s prediction timeout that killed legitimate long inferences
  (voices/flush keep theirs)
- Strip <think> reasoning blocks from all spoken text (PiperTTSClient and
  messageToSpeech), including unterminated trailing blocks
- Log render + playback progress to console (chunk N/M, % complete,
  waiting-on-chunk) for transparency during long generations

* fix: abort PiperTTS stream + playback when switching threads using supersession UUIDs that prevent this

* update security.md

* FoundryLocal overhaul (#6119)

* FoundryLocal overhaul

* remove noop endpoints not available via REST

* lint

* update FL error handling for issues it has since it is unstable

* no opencomputer cves

* feat: support GitHub Enterprise URLs in the GitHub data connector (#6117)

* feat: support GitHub Enterprise URLs in the GitHub data connector

The loader rejected any host other than github.com and hard-coded
https://api.github.com, so GitHub Enterprise Server instances could not be
used at all. Every flavor of GitHub serves the same REST API v3 endpoints and
only the root differs, so the loader now resolves an API base from the host of
the repository url:

  github.com             -> https://api.github.com
  GHE.com data residency -> https://api.{subdomain}.ghe.com
  Enterprise Server      -> {origin}/api/v3

The recursive load path hands off to LangChain's GithubRepoLoader, which parses
the repo url against `baseUrl` and sends requests to `apiUrl`. Both are now
passed explicitly since they are not the same host on GHE.com.

Enterprise instances can be served over http, which the `github://` chunkSource
scheme hides, so the repo protocol is stored with the payload and replayed on
resync the same way the Gitea connector already does. Existing chunkSources
have no scheme stored and keep defaulting to https.

resolves #3790

* unset translations since not all supported

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Image usage metrics
- Help us determine if we need to build out more image tools, like masking, flows, etc

* pin docker scout CLI version due to VEX push bug

* attempt flag

* patch

* v1.16.0 tags

* bump tags

* remove OC

* v1.16.0 tags (#6122)

---------

Signed-off-by: FailSafe Researcher <joshua@getfailsafe.com>
Co-authored-by: FailSafe Researcher <joshua@getfailsafe.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: Guilherme Nogueira <guilherme.lopesn@gmail.com>
Co-authored-by: Marcello Fitton <macfittondev@gmail.com>
Co-authored-by: rstocchi <rstocchi@buckeyebroadband.com>
Co-authored-by: Jordi Mas <jmas@softcatala.org>
Co-authored-by: Sanidhya Singh <singhsanidhya741@gmail.com>
Co-authored-by: timothycarambat <16845892+timothycarambat@users.noreply.github.com>
Co-authored-by: Petre Ghita <petre.ghita@asset-metrix.com>
Co-authored-by: ButenkoMS <fi.mihej@gmail.com>
Co-authored-by: Varun Anand Patkar <varunpatkar501@gmail.com>
Co-authored-by: unusdon <258786172+unusdon@users.noreply.github.com>
Co-authored-by: ivan-digital <root@ivan.digital>
Co-authored-by: albanobattistella <34811668+albanobattistella@users.noreply.github.com>
Co-authored-by: BoneNI <bounkirdni@gmail.com>
Co-authored-by: Native Muttaqien <83034829+samlehoy@users.noreply.github.com>
Co-authored-by: Sanidhya Singh <91531068+sanidhyasin@users.noreply.github.com>
Co-authored-by: devanonyme42 <devanonyme42izahbabm@gmail.com>
Co-authored-by: Souravrajvi0 <144546710+Souravrajvi0@users.noreply.github.com>
Co-authored-by: Marcello Fitton <106866560+angelplusultra@users.noreply.github.com>
Co-authored-by: Aditya Ingale <124868288+Adityai1411@users.noreply.github.com>
Co-authored-by: Arslan Rasheed <115124559+ArslanRasheed60@users.noreply.github.com>
Co-authored-by: richboyneedcash <preminem520@gmail.com>
Co-authored-by: richboyneedcash <273099414+richboyneedcash@users.noreply.github.com>
Co-authored-by: TRAE CLI <noreply@bytedance.com>
Co-authored-by: Chen, Ting-An <73953029+nrps9909@users.noreply.github.com>
2026-08-13 14:31:40 -07:00
2026-01-22 07:59:28 -08:00
2026-08-13 14:20:13 -07:00
2026-08-13 09:36:45 -07:00
2026-08-13 14:19:12 -07:00
2026-08-13 14:20:13 -07:00
2026-05-26 12:04:19 -07:00
2026-03-18 09:47:45 -07:00
2026-08-13 14:17:52 -07:00
2026-04-02 13:52:05 -07:00
2026-06-09 14:55:03 -07:00
2024-01-08 15:31:06 -08:00
2025-01-09 15:39:56 -08:00
2025-04-07 13:45:16 -07:00
2024-06-06 12:50:42 -07:00
2026-06-15 11:51:28 -07:00
2026-07-10 11:40:14 -07:00
2023-06-03 19:28:07 -07:00
2026-08-13 14:19:12 -07:00
2026-08-05 12:40:35 +00:00
2023-12-19 12:35:14 -08:00
2026-08-12 13:24:52 -07:00
2026-06-09 06:45:20 -07:00

Note

We are also working on Open Computer which gives an entire computer environment for AI Agents to use.

This will bring AnythingLLM's agent capabilities to a new level and a novel UX paradigm for AI Agent use.

Star the repo to stay updated!

AnythingLLM logo

Mintplex-Labs%2Fanything-llm | Trendshift

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.

Discord | License | Docs | Hosted Instance

English · 简体中文 · 日本語

👉 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.

Chatting

Watch the demo!

Watch the video

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

Supported LLMs, Embedder Models, Speech models, and Vector Databases

Large Language Models (LLMs):

Embedder models:

Audio Transcription models:

TTS (text-to-speech) support:

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
Deploy on Docker Deploy on AWS Deploy on GCP Deploy on DigitalOcean Deploy on Render.com
Railway RepoCloud Elestio Northflank
Deploy on Railway Deploy on RepoCloud Deploy on Elestio Deploy on Northflank

or set up a production AnythingLLM instance without Docker →

How to setup for development

  • yarn setup To fill in the required .env files you'll need in each of the application sections (from root of repo).
    • Go fill those out before proceeding. Ensure server/.env.development is filled or else things won't work right.
  • yarn dev:server To boot the server locally (from root of repo).
  • yarn dev:frontend To boot the frontend locally (from root of repo).
  • yarn dev:collector To then run the document collector (from root of repo).

Learn about documents

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)

Other outbound connections

If you disable telemetry, you would still see outbound connections to the following services:

  • If using an external tool, LLM, Embedding models, or Vector databases, you will still see outbound connections to the respective service provider.
  • cdn.anythingllm.com for pulling models from our mirror CDN. This is not tracked by telemetry and is actually useful for those in VPN restricted regions.
  • github/githubusercontent.com There are some various flat files that are downloaded from these domains for context window caching.

Basically, if telemetry is disabled we don't collect anything. However, depending on your setup you may still see outbound connections and would be subject to the terms of service of the respective service provider.

👋 Contributing

💖 Sponsors

Premium Sponsors

User avatar: DCS DIGITAL

All Sponsors

User avatar: JaschaUser avatar: KickAssUser avatar: ShadowArcanistUser avatar: AtlasUser avatar: Predrag StojadinovićUser avatar: Diego SpinolaUser avatar: KyleUser avatar: Giulio De PasqualeUser avatar: User avatar: MacStadiumUser avatar: User avatar: User avatar: User avatar: User avatar: DennisUser avatar: Michael Hamilton, Ph.D.User avatar: User avatar: TernaryLabsUser avatar: Daniel CelaUser avatar: AlessoUser avatar: Rune MathisenUser avatar: User avatar: User avatar: AlanUser avatar: Damien PetersUser avatar: DCS DigitalUser avatar: Paul McilreavyUser avatar: Til WolfUser avatar: Leopoldo Crhistian Riverin GomezUser avatar: AJEsauUser avatar: Steven VanOmmerenUser avatar: Casey BoettcherUser avatar: zebbernUser avatar: AvineetUser avatar: ChrisUser avatar: User avatar: Tim ChampUser avatar: Peter MathisenUser avatar: Ed di GirolamoUser avatar: Wojciech MiłkowskiUser avatar: ADS FundUser avatar: arc46 GmbHUser avatar: Li YinUser avatar: SylphAIUser avatar: User avatar: MikUser avatar:

🌟 Contributors

anythingllm contributors

Star History Chart

🔗 More Products


Copyright © 2026 Mintplex Labs.
This project is MIT licensed.

S
Description
AnythingLLM 是强大的本地优先 Agent 体验平台,让你拥有自己的智能。|GitHub 镜像 65.2k · 🍴 7.2k
https://github.com/mintplex-labs/anything-llm Readme MIT 91 MiB
Languages
JavaScript 93.7%
TypeScript 1.7%
CSS 1.3%
C 1.2%
HTML 0.9%
Other 1.2%