Migration

Migrate from AnythingLLM to Kortix: the open-source AI Operating System

Migrating from AnythingLLM to Kortix is the move from an app on one machine to a repo your whole company owns, and this guide walks it step by step.

If you arrived searching for an AnythingLLM alternative, the switch below keeps what already works and rebuilds the rest as files you can read, diff and roll back.

Scope State inside the app State in files you own
FIG 01 What the move changes about where your setup lives

What actually moves when you migrate

Kortix is the open-source AI Operating System: your agents, their skills, your company memory, and every connector in one git repo you own, with the agents working on real cloud computers.

AnythingLLM is a local-first application from Mintplex Labs for chatting with documents and running agents, shipped as a desktop app and a Docker deployment under the MIT license (checked October 2026).

In AnythingLLM, the state you care about lives inside the app. Your documents sit in workspaces, embedded into a vector store the server manages, with LanceDB as the default. Agent behavior and permissions are chosen in the UI. None of it is designed to be read, diffed or rolled back as code.

In Kortix, every one of those things is a file. An agent is agents/.md for its behavior plus an agents. block in kortix.yaml for its governance. Skills are markdown and scripts. Memory is files that accumulate. kortix.yaml declares the machine image, the connectors and the triggers, and a trigger is a cron schedule or a signed webhook. Migration is therefore mostly authoring: copy the documents in, then write down how your company works. From then on you can grep the whole setup, diff any change, and roll any part of it back.

What you keep from AnythingLLM

Your documents are the easy part. AnythingLLM ingests PDF, TXT, DOCX and other formats, and those source files are portable by definition, so they move across unchanged.

The model setup survives too. AnythingLLM connects local backends such as Ollama and LM Studio alongside cloud providers, and Kortix is model-agnostic in the same sense: any model provider with your own keys, or anything OpenAI-compatible behind your own URL. Whatever you run today still runs after the move.

Even the agent ideas translate. The behavior you configured in AnythingLLM agents becomes Kortix agents written in markdown, with their tool rules recorded in kortix.yaml.

The migration checklist

Work down the list in order. Most steps are copying files or writing text; the connector steps are configuration in the dashboard.

  1. Choose where Kortix runs. Self-hosting is free on your own box, and Kortix also runs as managed cloud, in your VPC or on your own on-prem network. If self-hosting is the point of the move, the self-hosting guide covers the deployment in detail.
  2. Scaffold the repo. kortix init creates kortix.yaml plus your agents, skills and runtime config. Keep the layout deliberate: agents/ for who does the work, skills/ for how your company does a job, memory/ for what it has learned so far. Then add model providers: any provider with your own keys, or the ChatGPT plan you already pay for.
  3. Move your documents and context. Copy the files out of your AnythingLLM workspaces into the repo. Put the distilled knowledge in memory/ so it accumulates for every future session instead of living in one chat's history.
  4. Wire the connectors. Connect Slack, docs, tickets, CRM and code once. Kortix reaches 3,000+ apps in a click, plus MCP, OpenAPI, Postman, GraphQL and raw HTTP.
  5. Scope which agent may touch which tool. Set each tool to Allow, Ask or Block, down to the arguments of each call. An Ask holds the call until a person approves it, then the agent resumes. AnythingLLM's permissioning decides who can use the instance; this decides what each agent may do, tool by tool.
  6. Set per-resource permissions and credentials. Per-resource permissions for people and agents, with roles, groups and an audit trail. Connector credentials are brokered server-side and never enter the machine. Secret values never appear in the repo; kortix.yaml carries only their names and grants. Approval gates are off until you set them.
  7. Set the session machine image in kortix.yaml. It declares the image each session boots. AnythingLLM runs as one deployment you size once; Kortix starts a fresh cloud computer for every session from the image you name, so a heavy job never slows a light one.
  8. Run the first agent and review its change request. Start a session on a small, real task. The agent works on its own branch and its own cloud computer, then opens a change request; the session id, sandbox id and branch name are one and the same string. You read the diff and merge it to main. Merge is default-deny for agents, so nothing lands unread.
project (git repo + kortix.yaml) └─ session ──> cloud computer: an isolated sandbox on a branch named after the session └─ the OpenCode agent works └─ change request ──> you review & merge ──> main
FIG 02 What step 08 produces: the first reviewed change on main, from the Kortix README

What changes for the team

Work lands as reviewable change requests instead of chat replies. A session produces a diff a person reads and approves, and edits to agents, skills or memory land the same way.

Credentials move behind a boundary. Connector credentials are brokered server-side and never enter the machine, and secrets are encrypted at rest with a key per project.

Sessions scale sideways. Thousands of agents run in parallel on one config, each on its own cloud computer. And because memory is files in the repo, what one session learns is available to the next.

Do you need to migrate at all?

Stay if AnythingLLM already fits. It is built exactly for that case: a local-first app that runs locally by default, and for one person chatting with local documents on a local model, that is a complete setup. The MIT license means nothing holds you in, now or later.

Move when the work outgrows one app: several people, agents acting across Slack, tickets, CRM and code, permissions per resource, and work that lands as reviewed changes. Multi-user support with permissioning is a Docker-deployment feature in AnythingLLM (checked October 2026), so the desktop app was never the team version. The head-to-head comparison covers the decision dimension by dimension, and the home page lays out how the whole system fits together.

Migration questions

Can I keep the local model I use in AnythingLLM?

Yes. AnythingLLM connects to local backends such as Ollama and LM Studio, and Kortix connects any model provider with your own keys, including anything OpenAI-compatible behind your own URL. Only the configuration moves, from the app's settings to the repo.

What happens to my AnythingLLM workspaces and embeddings?

The documents move with you. AnythingLLM's derived state, the embeddings in its vector store and the chat history, stays inside the app; LanceDB is the default store. In Kortix you copy the source files into the repo and agents work over them directly, with memory/ holding the accumulated context.

Do I have to self-host Kortix?

No. Self-hosting is free, and Kortix also runs as managed cloud, in your VPC, or on your own on-prem network. Pick the deployment that matches the data story you already have, and switch later if your needs change.

Try Kortix

Run the checklist against one real project and you end with a repo you own end to end. Try Kortix starts at the install, and the source is Kortix on GitHub.