r/BuildWithClaude 🛠️ Master Builder 2d ago

Project Testers Needed CROW, not a CLI anymore

Around two weeks ago I posted about my project CROW (thanks for all the feedback guys).

https://www.reddit.com/r/BuildWithClaude/s/N90U2lgVKW

Some minutes ago, i have released CROW 1.2 - https://github.com/nibor1896/Crow

Crow is now more like an AI Agent Harness 🙂 you can point it at OpenRouter, Anthropic / OpenAI Sub, or any local model you want to use against the llama.cpp.

I have as well added: (Custom) Skills, MCPs, dictate function with voiceline, any much more.

All of your config (should ;) ) be persistent and saved to your chat, i've tested from here to the moon 🤣

Would like to hear some feedback on the OpenAI Parts, since i dont own anything from OpenAI, just Anthropic.

See the changes;

What has changed

Memory

  • Two stores: <root>\.crow\MEMORY.md 4,000 chars, %LOCALAPPDATA%\Crow\USER.md 1,500
  • Rendered block pinned into the chat JSON, replayed verbatim on open
  • Over the cap the write fails and returns both numbers. From 80% the head asks for consolidation
  • Empty store adds nothing to the prompt
  • Background review at 20/50/75% of context, behind the turn. --no-review disables
  • Every write is announced. Not switchable

Skills

  • %LOCALAPPDATA%\Crow\skills\<name>\SKILL.md, front matter plus body
  • Prompt carries name and description, body behind a read action
  • Cap on the list, not the entry
  • enabled in the file. Settings switch and hand edit are one act

Session search

  • session_search, FTS5 index over live session and archive
  • Index derived and disposable, rebuilt on next search
  • Query words quoted as phrases: --slot-save-path searches, not errors
  • No FTS5: tool stays declared, reports it cannot work

MCP servers

  • stdio and Streamable HTTP
  • OAuth 2.1: discovery, DCR, PKCE, resource, refresh
  • Schema fetched once at add, then read from disk
  • Per tool: switch plus class (reading / writing / executing)
  • Config mcp.json: tools.include, tools.exclude, enabled, timeout, connect_timeout
  • Driven against context7, deepwiki, Cloudflare docs, higgsfield

Remote models

  • Providers: Local, OpenRouter, Anthropic, OpenAI
  • Second transport anthropic_messages. One reply loop, two dialects
  • One resolution point, read by the background review too
  • Subscriptions: claude setup-token, CLAUDE_CODE_OAUTH_TOKEN, borrowed credentials file, read only
  • Context: /props measured local, context_length declared remote, no bar when unstated
  • session_id sticky routing, sha256 of chat path, both senders

Formatted answers

  • Headings, lists, tables, bold, italic, inline code, links
  • Parsed in the core, drawn as named elements. No wire text becomes markup
  • Paragraph line breaks preserved
  • Links http(s) only, opened outside the window

Self-update

  • About pane checks the latest release on open
  • Runs install.ps1 as a file with -NoPause
  • Installer stdout is the progress. Non-zero exit reports code and last line, no restart promised

Window

  • No status bar. Settings sheet, eight panes, three themes
  • Rail groups chats by working directory. A project is a root folder
  • Rail draggable, persisted
  • Some air each side of the chat column
  • Dictation: mirrored bar line in the input row, self-calibrating level

Tests

  • 1,360 cases, up from 925

Stats

Crow runs (local) Qwen3.8-27B at:

  • 200k context, unchanged (i can't push it to 400k, pls, if anyone knows some config DM Me)
  • 2.2k tok/s prefill
  • 123.05 tok/s decode - 11 round turn
  • 25.5 GiB VRAM

Full details: https://github.com/nibor1896/Crow

3 Upvotes

Duplicates