Skip to content

Repository files navigation

The Crow window running a goal: the trace with a delegated subagent, the goal panel at 3/3, and the tool calls in the code panel

CROW

An agent, not a chat box.

A local model at 200k context with 25 tools and MCP, persistent memory, its own skills,
a browser panel, eyes, and subagents it can send out while it keeps working.
Runs on this machine, or on a provider you choose.

License Version Platform Model llama.cpp crow-nest Vision Browser Memory

MoE
512 experts, 10 active
200k
context, one slot
73.45 GiB
model on disk
30,984 MiB
VRAM in use
41.76
tok/s decode
727.65
tok/s prefill
yes
vision

Decode and prefill: 2026-09-01 (#182), driver 616.56, one 33,494-token cold turn per boot, three rounds interleaved against the previous placement (539.98 / 35.74); decode range 40.34–42.76. VRAM settled after load. Conditions in full, and the Linux line: operating points.


Install

Windows

irm https://raw.githubusercontent.com/nibor1896/Crow/main/install.ps1 | iex

Preflight, download, per-file sha256 against the release manifest, then the start lines with paths resolved. No elevation, nothing in Program Files, the registry or PATH.

Linux

curl -fsSL https://raw.githubusercontent.com/nibor1896/Crow/main/install.sh | bash

Five steps, a per-file sha256 manifest it re-reads on the next run, idempotent. No root — the GTK and WebKit bindings come from your distribution, so the installer prints that line instead of running it.

Neither one downloads the model. That is a separate command:

hf download unsloth/Qwen3.8-Flash-Next-GGUF --include "*UD-Q2_K_XL*" --local-dir $env:LOCALAPPDATA\Crow\models\qwen-next-gguf
hf download unsloth/Qwen3.8-Flash-Next-GGUF mmproj-F16.gguf --local-dir $env:LOCALAPPDATA\Crow\models\qwen-next-gguf
hf download unsloth/Qwen3.8-Flash-Next-GGUF --include "*UD-Q2_K_XL*" --local-dir ~/Projects/models/qwen3.8-flash-next
hf download unsloth/Qwen3.8-Flash-Next-GGUF mmproj-F16.gguf --local-dir ~/Projects/models/qwen3.8-flash-next

Three shards, 73.45 GiB, plus 904,004,000 B for the vision projector. The second line of each pair is that projector and the glob of the first walks past it — it sits in the repository root, above the quant folder. Without it the server starts as a text model and read_image refuses.

Requirements, both operating systems, updating, and where everything lands: Install guide.

Start

Two terminals: the server first (it loads for about a minute), then the window.

Linux

python3 ~/.local/share/crow/tools/start-server.py flash-next-q2-k-xl
crow

Windows

python $env:LOCALAPPDATA\Crow\cli\crow.py --serve flash-next-q2-k-xl
python $env:LOCALAPPDATA\Crow\cli\crow_gui.py

The window is the client. It reads the port off the running server, and the model menu can switch and reboot it from there. The by-hand llama-server lines, flag for flag, live in operating points.

How to use Crow

Everything below is in the screenshot at the top of this page.

Chats sidebar chats grouped by project, archive at the foot, fold state remembered. A delegated subtask hangs under its chat as a row. → window
Composer type, or /tools for what the model can call. Seventeen slash commands, the same words in both surfaces. → window
Context meter 6.1k / 200k at the left of the composer. Past 0.9 of the window the conversation rolls over: the leg is archived whole and the new one opens with a digest. → window
Model chip Qwen3.8-Flash-Next · high (default) — the model that is up and this chat's reasoning level, in one chip. Click it to switch models or providers. → reasoning levels · remote models
Approvals the mode chip, coloured by level: manual white, allowedit green, auto gold, yolo the alarm red. auto asks nothing, allowedit asks before executing, manual before writing and executing; yolo asks for nothing and means it -- outside paths and git_commit included. git_push asks at every level. → tools
Working directory the chip beside the approvals one — crow in the shot, no folder when there is none. Pick a folder there, or right-click the rail and make a project: a project is a working directory. It is the boundary every writer is held to, the repository the git panel reads, and where this chat's memory and goal live. → memory · settings
Dropping files drop a file and its path lands in the composer for the model to read_file; drop an image and it becomes a chip that rides the next line. → window
Trace one line per round, folded. Open it to see what the model actually did. Thought is its own fold, labelled with the share of the turn it took. → window
CODE panel on the right: every tool call with its arguments and its result, and under them the source write_file and edit_file produced, by path, with a copy per block. → window
Goal panel the plan the model wrote for itself: 3/3 steps, wall clock, tokens, delegated tokens. It outlives a rollover and a restart. → goals and subagents
Subagents delegate hands a task to a second model and returns at once; the turn keeps streaming. collect fetches the results. Never on this machine's slot. → goals and subagents
Browser panel the globe in the title bar. Tabs, an address bar, per-tab history — a real window, not an iframe, so claude.ai and github.com load. → browser
Voice the microphone beside the arrow. Recorded and transcribed locally; nothing reaches the disk. → window
Themes dark, light and crow. Help → Settings → Appearance. → settings
Images paste a screenshot (Ctrl+V) or /image <path>. They ride the next line, stay in the transcript and survive a restart; the model opens one itself with read_image. → tools
A web_search turn: the Trace, the folded Thought, the answer, and two tool calls in the panel

Settings, Model page: this machine, OpenRouter, Anthropic and OpenAI as providers

Features

Tools 25 built in, plus every MCP server you add
Memory two plain-text stores, per project and per person, written only after you approve
Skills procedures the model keeps and rewrites; name and description in the prompt, body on request
Goals a plan in the pinned head, the state in a file — it survives a rollover and a restart
Subagents delegate / subtasks / collect, up to 16 at once, on a remote spot
Browser panel tabs and an address bar in the window, and render_page for the model
Vision read_image — the model looks at a screenshot, a render or a diagram
Session search SQLite FTS5 over every archived conversation; the real messages, not a summary
MCP stdio and Streamable HTTP, with OAuth, elicitation and per-tool classes
Remote models OpenRouter, Anthropic, OpenAI — key or sign-in. The default is always this machine
Voice dictation into the composer, faster-whisper locally, nothing written to disk
Secrets a file with an ACL instead of an environment variable every child process inherits

Tools

25 built in. /tools lists them in either surface; the full reference is docs/reference/tools.md.

group
Files read_file a file or a line range · write_file (an existing file must have been read first) · edit_file one exact occurrence · list_dir · find_files by glob · search_text by regex
Shell run_command — named shell, timeout, and a path outside the working directory asks first
Git git_status · git_diff · git_log · git_commit (stages exactly the paths given) · git_push · github_connect over the OAuth device flow
Web web_search — answer from what you read, a list of links is not an answer · fetch_url one page as readable text
Browser render_page opens a page in a browser Crow owns and brings back a screenshot plus the console
Vision read_image — check your own work when a step says it has to look right
Memory memory add, replace, remove · skill read, save, remove · session_search over months of archives
Goals goal_set writes the plan · goal_step moves one step, and costs no prefill
Subagents delegate hands a task out · subtasks where they stand · collect waits and returns

Every MCP tool joins the same list as mcp_<server>_<tool>, with its own class.

Operating points

model decode port engine
Default, Windows Qwen3.8-Flash-Next-UD-Q2_K_XL 41.76 tok/s 8083 llama.cpp, local build
Default, Linux Qwen3.8-Flash-Next-UD-Q2_K_XL 41.8 tok/s 8083 llama.cpp, built here
Second Qwen3.8-27B-UD-Q4_K_XL 123.05 / 133.18 tok/s 8082 llama.cpp, packaged
Third (Rust) CNQ4.5-M NVFP4 container 45.1 tok/s (Windows) · 36.8 tok/s at 16k context (Linux) 8099 crow-nest v0.3.0, Windows and Linux

Placements, conditions, the engine patches and the by-hand server lines: operating points. Source of truth: manifests/operating-point.json, held against every written copy by tools/check_operating_point.py.

Documentation

Everything is under docs/.

User guide Install · Window · Linux · Memory · Skills · Goals and subagents · Browser · Session search · MCP servers · MCP over HTTP · Remote models
Reference Tools · Server flags · Client flags · Reasoning levels · Settings · mcp.json
Operating points The four lines · Measurements · Placement sweep · MCP cost
Developer guide Architecture · Testing · Repo · Not built
Plans Crow on Linux
Earlier READMEs v0.5.1, Qwen-first · v0.5.1, the one before it

Licence

MIT. See LICENSE.

Model: Qwen (Apache-2.0). Quantisation by Unsloth. Engine: llama.cpp. The optional third model, Qwen3.8-Flash-Next, is licensed qwen-community-1.0 — read it before redistributing; Crow does not ship the weights.

Ko-fi

Releases

Sponsor this project

Packages

Contributors

Languages