Run an AI agent on a model served from your own machine, and work with it on the local board without an account or an internet connection.
Local agents are available on all Infa plans, and need no Infa account. You need the Infa CLI 0.2.0 or later and a model server on your machine, such as Ollama.
A local agent is an AI agent whose model runs on your computer. You work with it on the local board (infa.ai/local): ask it something about your repository, mention it in a comment on a doc, and it answers, suggests edits you accept or reject, and draws canvases. We at Infa built local agents for teams that cannot send their code or docs to a hosted model: the prompt, the files the agent reads and everything it writes stay on the device, and the whole loop keeps working with Wi-Fi off.
Copy link
How it works
Piece
Where it lives
The model
a model server on your machine: Ollama, vLLM, or any server with an OpenAI-compatible API
The agent: its @tag, model and server
.infa/config.yml in your repository, written by infa agents add
The runtime that runs its tasks
your infa preview, in that repository
Its runs and comment threads
.infa/runs/ and .infa/threads/, one JSON file each
The local board talks only to your infa preview, and the CLI talks only to the model server you named. Nothing reaches infa.ai's servers.
Copy link
Add a local agent
With Ollama installed, run this in your repository:
The CLI starts ollama serve if nothing answers, pulls the model if it is missing, and writes the agent to .infa/config.yml. Then start the board as usual:
npx infa preview
The startup summary shows the agent under Local agents, for example @Ripple · qwen3:8b (ollama), and the browser opens the local board.
Option
What it does
--model <id>
The model the server knows, such as qwen3:8b or ricursiveAI/Ripple-65B-Preview-NVFP4
--engine ollama | vllm | openai
Who serves the model. Default ollama. With vllm the CLI prints the vllm serve command to run once on the GPU machine; openai is any other OpenAI-compatible server
--base-url <url>
The server's OpenAI-compatible endpoint, ending in /v1. Defaults: Ollama http://127.0.0.1:11434/v1, vLLM http://127.0.0.1:8000/v1
--label <text>
What the board shows for the agent, such as "Ripple-65B on ThinkStation PGX"
Choosing a model
The agent works through tools (reading files, searching, writing a canvas), so pick a model that supports tool calling. We use qwen3:8b on a laptop with 16 GB of memory; a larger model on a workstation with a GPU answers faster and writes better canvases.
Copy link
Ask from the runs view
Click Ask AI in the local board's top bar. It opens the Runs view: a field to ask the agent anything about the repository, and every run below it.
Map this repo's architecture onto a canvas at docs/architecture.canvas
Each run shows its steps live as the agent works: the files it reads, what it searched for, what it wrote. When it finishes, a run that wrote a file links to it, so one click opens the new canvas or the doc it suggested changes to.
Copy link
Ask from a comment
Open a doc on the local board and scroll to Comments under it. Select the text you want to talk about, then write a comment that mentions the agent:
@Ripple make this sentence clearer and mention that notes sync offline
The selected text is quoted with your comment. The agent's answer appears under your comment as it works, and any change it proposes to the file arrives in the document as a tracked suggestion: the removed words struck through, the new words highlighted. Click Accept to keep the change or Reject to drop it. Nothing changes in your file until you decide.
Copy link
Canvases
An agent draws a diagram by writing a .canvas file in your repository. The local board opens .canvas files and lets you edit them by hand:
Drag blocks to move them, and drag their edges to resize them
Double-click a shape to rename it
Press X to draw arrows between blocks, and Esc to go back to selecting
Select a block or an arrow and press Delete to remove it
⌘Z undoes and ⇧⌘Z redoes
Every change is saved to the file on disk, so a canvas lives in git next to the code it describes. When the agent writes the file again, the board shows its new version.
Copy link
What an agent can do
A local agent reads your repository and writes only two things:
Tracked suggestions in Markdown and MDX files, which you accept or reject
.canvas files
It never edits code, never writes to .git/, .infa/ or node_modules/, and never leaves the repository. Its tools are list_files, read_file, search, suggest_edit and write_canvas. One agent runs one task at a time; anything you ask meanwhile waits in its queue.
Runs and comment threads are kept in .infa/runs/ and .infa/threads/. Add both to .gitignore if you do not want them in git.
Local agents stay on your machine: they are never synced to a cloud board.
Copy link
Troubleshooting
Nothing answers at the agent's server address. Start the server (ollama serve, or the vllm serve command the CLI printed) and reload the board.
The server answers but does not have the model. With Ollama run ollama pull <model>; with vLLM, start the server with that model.
A small model on a laptop needs a few minutes for a canvas. The run's steps show what it is doing; a larger machine with a GPU is much faster.
We at Infa think the best place for a model that reads your private code is the machine the code already lives on. Local agents give you that, with the same board you use with your team.
Local Agents
Local agents are available on all Infa plans, and need no Infa account. You need the Infa CLI 0.2.0 or later and a model server on your machine, such as Ollama.
A local agent is an AI agent whose model runs on your computer. You work with it on the local board (
infa.ai/local): ask it something about your repository, mention it in a comment on a doc, and it answers, suggests edits you accept or reject, and draws canvases. We at Infa built local agents for teams that cannot send their code or docs to a hosted model: the prompt, the files the agent reads and everything it writes stay on the device, and the whole loop keeps working with Wi-Fi off.@tag, model and server.infa/config.ymlin your repository, written byinfa agents addinfa preview, in that repository.infa/runs/and.infa/threads/, one JSON file eachThe local board talks only to your
infa preview, and the CLI talks only to the model server you named. Nothing reaches infa.ai's servers.With Ollama installed, run this in your repository:
The CLI starts
ollama serveif nothing answers, pulls the model if it is missing, and writes the agent to.infa/config.yml. Then start the board as usual:The startup summary shows the agent under Local agents, for example
@Ripple · qwen3:8b (ollama), and the browser opens the local board.--model <id>qwen3:8borricursiveAI/Ripple-65B-Preview-NVFP4--engine ollama | vllm | openaiollama. Withvllmthe CLI prints thevllm servecommand to run once on the GPU machine;openaiis any other OpenAI-compatible server--base-url <url>/v1. Defaults: Ollamahttp://127.0.0.1:11434/v1, vLLMhttp://127.0.0.1:8000/v1--label <text>The agent works through tools (reading files, searching, writing a canvas), so pick a model that supports tool calling. We use
qwen3:8bon a laptop with 16 GB of memory; a larger model on a workstation with a GPU answers faster and writes better canvases.Click Ask AI in the local board's top bar. It opens the Runs view: a field to ask the agent anything about the repository, and every run below it.
Each run shows its steps live as the agent works: the files it reads, what it searched for, what it wrote. When it finishes, a run that wrote a file links to it, so one click opens the new canvas or the doc it suggested changes to.
Open a doc on the local board and scroll to Comments under it. Select the text you want to talk about, then write a comment that mentions the agent:
The selected text is quoted with your comment. The agent's answer appears under your comment as it works, and any change it proposes to the file arrives in the document as a tracked suggestion: the removed words struck through, the new words highlighted. Click Accept to keep the change or Reject to drop it. Nothing changes in your file until you decide.
An agent draws a diagram by writing a
.canvasfile in your repository. The local board opens.canvasfiles and lets you edit them by hand:Every change is saved to the file on disk, so a canvas lives in git next to the code it describes. When the agent writes the file again, the board shows its new version.
A local agent reads your repository and writes only two things:
.canvasfilesIt never edits code, never writes to
.git/,.infa/ornode_modules/, and never leaves the repository. Its tools arelist_files,read_file,search,suggest_editandwrite_canvas. One agent runs one task at a time; anything you ask meanwhile waits in its queue.Runs and comment threads are kept in
.infa/runs/and.infa/threads/. Add both to.gitignoreif you do not want them in git.infa.ai/localinfa agents add <Tag> --localinfa agents link <definition> --as <Tag>Local agents stay on your machine: they are never synced to a cloud board.
Nothing answers at the agent's server address. Start the server (
ollama serve, or thevllm servecommand the CLI printed) and reload the board.The server answers but does not have the model. With Ollama run
ollama pull <model>; with vLLM, start the server with that model.A small model on a laptop needs a few minutes for a canvas. The run's steps show what it is doing; a larger machine with a GPU is much faster.
We at Infa think the best place for a model that reads your private code is the machine the code already lives on. Local agents give you that, with the same board you use with your team.