README
README
Turn a local model into a working coding agent. It reads and edits your code, runs your tests, remembers your project, uses git, searches the web and reads your documents. It all runs on your machine: no API keys, nothing uploaded.
Project home ยท Tips & tricks ยท Report a problem
| Group | Default | In one line | |
|---|---|---|---|
| ๐ | Files & Shell | on | Read, write and edit files, search the project, run commands |
| ๐ง | Memory & Context | on | Remember things between chats, follow your AGENTS.md, plan before changing |
| ๐ฟ | Git & GitHub | on | Status, diffs, commits, branches, pull requests and issues |
| ๐ | Web | off | Search, read pages and feeds, video transcripts, a real browser |
| ๐ | Documents | off | Read PDFs, scans and images, look at pictures, write Word and PDF files |
| ๐งฎ | Utilities | off | Exact arithmetic, and today's date and time |
Each group is a switch in the plugin's settings. Leave on only what you need, because small models choose better from a short tool list.
Without a Project Folder, the model works in the chat's own empty folder and is told so.
| Tool | What it does |
|---|---|
read_file | Reads a file with line numbers; offset and limit page through big ones. |
write_file | Creates or overwrites a file. |
edit_file | Replaces one exact piece of text. It must match once, so nothing else changes. |
multi_edit | Several replacements in one file; if any fails, none are written. |
insert_lines | Inserts text after a line number. |
undo_edit | Puts a file back as it was before the chat's last change to it. |
list_dir ยท glob | List a folder, or find files by pattern. |
grep | Searches file contents, returning lines, just file names, or counts. |
run_command | Runs a shell command and returns its real exit code and output. |
shell_reset | Starts the shell session afresh. |
task_run ยท task_list ยท task_output ยท task_stop | Run dev servers, watchers and long builds in the background. |
Long command output is saved to a file and its path returned, so nothing is lost. grep gives the same results whether or not ripgrep is installed; ripgrep just makes it faster.
Every new chat starts with today's date, your AGENTS.md (or CLAUDE.md), your saved memories, your skills and, in a git repository, the branch, uncommitted changes and recent commits.
| Tool | What it does |
|---|---|
memory_save ยท memory_read ยท memory_search ยท memory_list ยท memory_delete | Facts that last between chats. |
save_session_summary | Saves where a long chat got to, so a new chat can pick it up. |
todo_write ยท todo_read | A todo list for work with several steps. |
skill_list ยท skill_read | Your skills: written instructions for kinds of task. skill_read also opens the other files in a skill's folder. |
skill_save | Lets the model save a new skill. Off by default. |
chat_search | Searches your earlier LM Studio chats. Off by default. |
enter_plan_mode ยท exit_plan_mode | Plan first: the tools that change files disappear until the plan is presented. |
Skills use the standard SKILL.md layout, the same as Claude Code, Codex and LM Studio Bionic. Point Skills Directory at ~/.lmstudio/skills or ~/.claude/skills and the skills you already have work here.
| Tool | What it does |
|---|---|
git_status ยท git_diff ยท git_log ยท git_show | See what changed, and when. |
git_add ยท git_commit ยท git_branch ยท git_init | Stage, commit, branch, start a repository. |
git_push | Pushes the current branch. Off by default, and never forced. |
gh_pr_list ยท gh_pr_view ยท gh_pr_diff ยท gh_pr_checks ยท gh_pr_create | Pull requests, through the GitHub CLI. |
gh_issue_list ยท gh_issue_view | Issues. |
git and gh run directly, never through a shell. The gh_* tools appear once gh is installed and logged in.
| Tool | What it does |
|---|---|
web_search | Searches the web through your SearXNG, DuckDuckGo or Brave. Repeat searches are answered from a short cache; page asks for more results. |
fetch_url | Reads a page as clean markdown, or a PDF page by page. Give it a CSS selector to read just one part, like a single table. |
read_feed | The latest items of an RSS or Atom feed. A site's home page works too. |
video_transcript | What's said in a YouTube or other video, through yt-dlp. |
browser_open ยท browser_click ยท browser_type ยท browser_back ยท browser_snapshot ยท browser_screenshot ยท browser_close | Drives your own Edge or Chrome. Pages run their JavaScript, and the model clicks by number. |
wikipedia | Finds a Wikipedia article and returns its text, in any language edition. |
web_doctor | Checks what's set up (SearXNG, the browser, yt-dlp) and says how to fix what isn't. Also says when a newer agent-toolkit release is out. |
research |
research searches with a few queries, reads up to five pages and has the model note what each says about the question, then writes the answer from those notes alone. Each step is a small, single question, which small models handle well. Citations of sources that don't exist are removed, and the answer says when it cites nothing. It takes a minute or so of generation, on the first loaded model or the Research Model you choose. Its answers are only as good as the search behind them, so it works best with SearXNG or Brave.
Search works best with a private SearXNG. Without one it falls back to DuckDuckGo, which answers a couple of searches and then turns automated requests away for a while; the toolkit spaces its requests out and pauses for two minutes once refused. More result pages need SearXNG or Brave. video_transcript appears once yt-dlp is installed.
read_feed, video_transcript and fetch_url also come as small plugins of their own: feed-reader, video-transcripts and page-reader.
Your chat model doesn't need vision. A PDF's text is read without any model, and OCR and view_image use a separate vision model only when a page or picture has to be looked at.
| Tool | What it does |
|---|---|
read_document_text | Reads a PDF's text, and says when a page looks scanned. |
ocr_document | Reads a scanned PDF or an image with a vision model. |
view_image | Looks at a picture, from your folder or a web address, and describes it or answers a question about it. |
pdf_to_images | Saves PDF pages as images. |
write_document | Writes the model's answer as a Word (.docx) or PDF file in your folder. |
PDF output is printed by your own Edge or Chrome, with scripts off and no network access, so it needs one of them installed; Word output needs nothing. Pictures are left out of both, and the tool says how many.
Small models guess at sums and don't know what day it is. These two tools give them the right answer.
| Tool | What it does |
|---|---|
calculate | Works out an arithmetic expression exactly: 15% of 240, sqrt(2) * 10^3, 12!. |
current_time | Today's date, the time and the week number, in your time zone or any other. |
Everywhere
| Setting | Default | |
|---|---|---|
| Project Folder | (empty) | The folder every group works in. |
| Max Output Characters | 20000 | Longer results keep their beginning and end. |
| Redact Secrets | on | Hides API keys, tokens and private keys in what tools return. Your files are never changed. |
| Read Attached Files | on | Puts the text of a PDF, Word or text file you attach to a message into that message. |
| Max Attachment Characters | 40000 | How much of it; never more than half of what the chat's model has left. |
Attached files. Attach a document to a message and ask about it: its text goes into the message, so "summarize this" means the document. A long one is cut at the limit, and the model is told how to read the rest; a scanned PDF is read with ocr_document. The tools can open what you attached in that chat by its name, and nothing else from LM Studio's own folder. LM Studio's RAG plugin reads attachments too: use one of the two in a chat, not both.
Files & Shell
| Setting | Default | |
|---|---|---|
| Allow Shell Commands | on | Offers run_command. |
| Shell | auto | PowerShell on Windows, bash elsewhere. |
| Default Command Timeout | 60 s | The model can ask for up to ten times this. |
| Extra Blocked Command Patterns | (none) | Your own patterns to refuse. |
| Persistent Shell Session | on | cd and variables carry over between commands. |
| Max Read Bytes | 256 KB | Bigger files are read in parts. |
| Background Tasks ยท Diagnostics | on | |
| Jupyter Notebook Tools ยท Research Sub-agent ยท SQLite Tool | off | |
| Sub-agent Model | Auto | Chosen from a list of your models. |
Memory & Context
| Setting | Default | |
|---|---|---|
| Instruction Files | AGENTS.md, CLAUDE.md, .lmstudio/instructions.md | Loaded into each new chat. |
| Inject Memory Index ยท Git Snapshot ยท Skills ยท Plan Mode | on | |
| Scan Loaded Files | on | Leaves out files written to steer the model. |
| Let the Model Save Skills ยท Search Past Chats | off | |
| Max Injected Characters | 12000 |
Git & GitHub: Allow Push (off) ยท Enable GitHub Tools (on).
Web: Search Backend (auto) ยท SearXNG URL (http://localhost:8888) ยท Safe Search (moderate) ยท Default Search Results (8) ยท Max Page Characters (15000) ยท Browser Fallback (on) ยท Enable Browser Tools (on) ยท Browser (Edge on Windows, Chrome elsewhere) ยท Headless (on) ยท Research (off) ยท Research Model (Auto, chosen from your models).
Documents: Vision Model (Auto, chosen from your models) ยท PDF Render Scale (2) ยท Max Pages Per Call (10).
Shared by every chat: Memory Directory ยท Skills Directory ยท Brave Search API Key.
Approving a tool call is the same as running that command yourself, so keep LM Studio's confirmation on.
Turn a local model into a working coding agent. It reads and edits your code, runs your tests, remembers your project, uses git, searches the web and reads your documents. It all runs on your machine: no API keys, nothing uploaded.
Project home ยท Tips & tricks ยท Report a problem
| Group | Default | In one line | |
|---|---|---|---|
| ๐ | Files & Shell | on | Read, write and edit files, search the project, run commands |
| ๐ง | Memory & Context | on | Remember things between chats, follow your AGENTS.md, plan before changing |
| ๐ฟ | Git & GitHub | on | Status, diffs, commits, branches, pull requests and issues |
| ๐ | Web | off | Search, read pages and feeds, video transcripts, a real browser |
| ๐ | Documents | off | Read PDFs, scans and images, look at pictures, write Word and PDF files |
| ๐งฎ | Utilities | off | Exact arithmetic, and today's date and time |
Each group is a switch in the plugin's settings. Leave on only what you need, because small models choose better from a short tool list.
Without a Project Folder, the model works in the chat's own empty folder and is told so.
| Tool | What it does |
|---|---|
read_file | Reads a file with line numbers; offset and limit page through big ones. |
write_file | Creates or overwrites a file. |
edit_file | Replaces one exact piece of text. It must match once, so nothing else changes. |
multi_edit | Several replacements in one file; if any fails, none are written. |
insert_lines | Inserts text after a line number. |
undo_edit | Puts a file back as it was before the chat's last change to it. |
list_dir ยท glob | List a folder, or find files by pattern. |
grep | Searches file contents, returning lines, just file names, or counts. |
run_command | Runs a shell command and returns its real exit code and output. |
shell_reset | Starts the shell session afresh. |
task_run ยท task_list ยท task_output ยท task_stop | Run dev servers, watchers and long builds in the background. |
Long command output is saved to a file and its path returned, so nothing is lost. grep gives the same results whether or not ripgrep is installed; ripgrep just makes it faster.
Every new chat starts with today's date, your AGENTS.md (or CLAUDE.md), your saved memories, your skills and, in a git repository, the branch, uncommitted changes and recent commits.
| Tool | What it does |
|---|---|
memory_save ยท memory_read ยท memory_search ยท memory_list ยท memory_delete | Facts that last between chats. |
save_session_summary | Saves where a long chat got to, so a new chat can pick it up. |
todo_write ยท todo_read | A todo list for work with several steps. |
skill_list ยท skill_read | Your skills: written instructions for kinds of task. skill_read also opens the other files in a skill's folder. |
skill_save | Lets the model save a new skill. Off by default. |
chat_search | Searches your earlier LM Studio chats. Off by default. |
enter_plan_mode ยท exit_plan_mode | Plan first: the tools that change files disappear until the plan is presented. |
Skills use the standard SKILL.md layout, the same as Claude Code, Codex and LM Studio Bionic. Point Skills Directory at ~/.lmstudio/skills or ~/.claude/skills and the skills you already have work here.
| Tool | What it does |
|---|---|
git_status ยท git_diff ยท git_log ยท git_show | See what changed, and when. |
git_add ยท git_commit ยท git_branch ยท git_init | Stage, commit, branch, start a repository. |
git_push | Pushes the current branch. Off by default, and never forced. |
gh_pr_list ยท gh_pr_view ยท gh_pr_diff ยท gh_pr_checks ยท gh_pr_create | Pull requests, through the GitHub CLI. |
gh_issue_list ยท gh_issue_view | Issues. |
git and gh run directly, never through a shell. The gh_* tools appear once gh is installed and logged in.
| Tool | What it does |
|---|---|
web_search | Searches the web through your SearXNG, DuckDuckGo or Brave. Repeat searches are answered from a short cache; page asks for more results. |
fetch_url | Reads a page as clean markdown, or a PDF page by page. Give it a CSS selector to read just one part, like a single table. |
read_feed | The latest items of an RSS or Atom feed. A site's home page works too. |
video_transcript | What's said in a YouTube or other video, through yt-dlp. |
browser_open ยท browser_click ยท browser_type ยท browser_back ยท browser_snapshot ยท browser_screenshot ยท browser_close | Drives your own Edge or Chrome. Pages run their JavaScript, and the model clicks by number. |
wikipedia | Finds a Wikipedia article and returns its text, in any language edition. |
web_doctor | Checks what's set up (SearXNG, the browser, yt-dlp) and says how to fix what isn't. Also says when a newer agent-toolkit release is out. |
research |
research searches with a few queries, reads up to five pages and has the model note what each says about the question, then writes the answer from those notes alone. Each step is a small, single question, which small models handle well. Citations of sources that don't exist are removed, and the answer says when it cites nothing. It takes a minute or so of generation, on the first loaded model or the Research Model you choose. Its answers are only as good as the search behind them, so it works best with SearXNG or Brave.
Search works best with a private SearXNG. Without one it falls back to DuckDuckGo, which answers a couple of searches and then turns automated requests away for a while; the toolkit spaces its requests out and pauses for two minutes once refused. More result pages need SearXNG or Brave. video_transcript appears once yt-dlp is installed.
read_feed, video_transcript and fetch_url also come as small plugins of their own: feed-reader, video-transcripts and page-reader.
Your chat model doesn't need vision. A PDF's text is read without any model, and OCR and view_image use a separate vision model only when a page or picture has to be looked at.
| Tool | What it does |
|---|---|
read_document_text | Reads a PDF's text, and says when a page looks scanned. |
ocr_document | Reads a scanned PDF or an image with a vision model. |
view_image | Looks at a picture, from your folder or a web address, and describes it or answers a question about it. |
pdf_to_images | Saves PDF pages as images. |
write_document | Writes the model's answer as a Word (.docx) or PDF file in your folder. |
PDF output is printed by your own Edge or Chrome, with scripts off and no network access, so it needs one of them installed; Word output needs nothing. Pictures are left out of both, and the tool says how many.
Small models guess at sums and don't know what day it is. These two tools give them the right answer.
| Tool | What it does |
|---|---|
calculate | Works out an arithmetic expression exactly: 15% of 240, sqrt(2) * 10^3, 12!. |
current_time | Today's date, the time and the week number, in your time zone or any other. |
Everywhere
| Setting | Default | |
|---|---|---|
| Project Folder | (empty) | The folder every group works in. |
| Max Output Characters | 20000 | Longer results keep their beginning and end. |
| Redact Secrets | on | Hides API keys, tokens and private keys in what tools return. Your files are never changed. |
| Read Attached Files | on | Puts the text of a PDF, Word or text file you attach to a message into that message. |
| Max Attachment Characters | 40000 | How much of it; never more than half of what the chat's model has left. |
Attached files. Attach a document to a message and ask about it: its text goes into the message, so "summarize this" means the document. A long one is cut at the limit, and the model is told how to read the rest; a scanned PDF is read with ocr_document. The tools can open what you attached in that chat by its name, and nothing else from LM Studio's own folder. LM Studio's RAG plugin reads attachments too: use one of the two in a chat, not both.
Files & Shell
| Setting | Default | |
|---|---|---|
| Allow Shell Commands | on | Offers run_command. |
| Shell | auto | PowerShell on Windows, bash elsewhere. |
| Default Command Timeout | 60 s | The model can ask for up to ten times this. |
| Extra Blocked Command Patterns | (none) | Your own patterns to refuse. |
| Persistent Shell Session | on | cd and variables carry over between commands. |
| Max Read Bytes | 256 KB | Bigger files are read in parts. |
| Background Tasks ยท Diagnostics | on | |
| Jupyter Notebook Tools ยท Research Sub-agent ยท SQLite Tool | off | |
| Sub-agent Model | Auto | Chosen from a list of your models. |
Memory & Context
| Setting | Default | |
|---|---|---|
| Instruction Files | AGENTS.md, CLAUDE.md, .lmstudio/instructions.md | Loaded into each new chat. |
| Inject Memory Index ยท Git Snapshot ยท Skills ยท Plan Mode | on | |
| Scan Loaded Files | on | Leaves out files written to steer the model. |
| Let the Model Save Skills ยท Search Past Chats | off | |
| Max Injected Characters | 12000 |
Git & GitHub: Allow Push (off) ยท Enable GitHub Tools (on).
Web: Search Backend (auto) ยท SearXNG URL (http://localhost:8888) ยท Safe Search (moderate) ยท Default Search Results (8) ยท Max Page Characters (15000) ยท Browser Fallback (on) ยท Enable Browser Tools (on) ยท Browser (Edge on Windows, Chrome elsewhere) ยท Headless (on) ยท Research (off) ยท Research Model (Auto, chosen from your models).
Documents: Vision Model (Auto, chosen from your models) ยท PDF Render Scale (2) ยท Max Pages Per Call (10).
Shared by every chat: Memory Directory ยท Skills Directory ยท Brave Search API Key.
Approving a tool call is the same as running that command yourself, so keep LM Studio's confirmation on.
diagnostics| Runs the project's own checkers: tsc, ESLint, Ruff, Pyright, cargo, go vet. |
notebook_read ยท notebook_edit | Read and change Jupyter notebook cells. Off by default. |
run_subagent | Answers a search-heavy question in a read-only helper agent. Off by default. |
sqlite_query | Shows a SQLite database's tables, or runs one read-only query. Off by default. |
| Answers a question from several pages, with a numbered source for each claim. Off by default. |
rm -rf /, format C:, diskpart and similar are blocked. This is a seatbelt, not a sandbox.AGENTS.md or skill that tries to steer the model ("ignore previous instructions", hidden characters, sending keys away) is left out, and you're shown why.diagnostics| Runs the project's own checkers: tsc, ESLint, Ruff, Pyright, cargo, go vet. |
notebook_read ยท notebook_edit | Read and change Jupyter notebook cells. Off by default. |
run_subagent | Answers a search-heavy question in a read-only helper agent. Off by default. |
sqlite_query | Shows a SQLite database's tables, or runs one read-only query. Off by default. |
| Answers a question from several pages, with a numbered source for each claim. Off by default. |
rm -rf /, format C:, diskpart and similar are blocked. This is a seatbelt, not a sandbox.AGENTS.md or skill that tries to steer the model ("ignore previous instructions", hidden characters, sending keys away) is left out, and you're shown why.