c0wrk

command module
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2026 License: MIT Imports: 10 Imported by: 0

README

c0wrk

[!WARNING] Early Alpha Stage — This project is under active development and not yet stable. Features, APIs, and configuration formats may change without notice. Use at your own risk.

A desktop AI agent for work that won't fit in a single reply — research, coding, writing, anything multi-step.

c0wrk main view

What makes c0wrk different

  • Plans before it acts. For anything non-trivial, c0wrk maps the work to a plan as a dependency graph you can review and approve before it runs a single step — so a wrong approach gets caught in seconds, not after twenty minutes of work. Big jobs get split into isolated sub-tasks handed to sub-agents that run in parallel, each with its own focus, so the independent parts finish together instead of one after another.
  • Goals that run to the finish. Start a message with /goal and c0wrk commits to a concrete, checkable definition of "done" that you sign off on up front — then keeps working turn after turn, checking its own progress, until it can prove the goal is met, it's stuck, the budget runs out, or you hit pause. No stopping at the first plausible-looking answer.
  • Two modes for two kinds of work. CODE points the agent at a real project: full toolset, in-place file edits, inline diffs, and git. CHAT is for when you want to reason, research, or draft without touching a codebase — each CHAT session gets its own isolated scratch workspace, code-modifying tools are switched off, and no git is required.
  • The whole loop stays in one window. Once the code is written you don't switch tools to finish the job. Open the built-in review page and walk every changed file as a real diff, leave comments on individual hunks or whole files, then approve or send it back for another pass — and when it's ready, stage, commit (with a message the model drafts from the diff itself), and push straight from the git panel, no terminal required. Branch info, commit history, and the graph live in the same panel, and the working tree stays in sync so what you review is always what's on disk.
  • Safe by default, never in your way. c0wrk stays inside your project and checks every risky step before it runs, so nothing destructive ever happens by surprise — and an optional AI judge quietly clears the routine calls so you're asked only about what genuinely matters, not every file write. Since the web pages and files it reads can't hijack it either, you can hand it real, messy work and trust it to stay on task.
  • Bring your own model. Works with Anthropic, OpenAI, ChatGPT and any OpenAI- or Anthropic-compatible endpoint. Set it up once, switch models per task.
  • Runs well on small models. Turn on Small LLM mode and c0wrk adapts itself to a lightweight or local model instead of fighting it — the router curates only the tools the task needs so the prompt isn't bloated with dozens of schemas, the system prompt trims to a compact core, sampling tightens up, and the loop catches repetition sooner. Each optimization is an independent switch, so you dial in exactly what your model handles and leave the rest off.
  • Knows your codebase. Semantic + lexical search means c0wrk finds the right file or symbol even when you describe it loosely, not just when keywords happen to match.
  • Plays nice with corporate networks. HTTP/HTTPS proxy support with custom CA certs and bypass lists.

Download & install

Prebuilt desktop builds are published on the GitHub Releases page. Builds are currently unsigned — see the per-OS notes below for the one-time workaround.

Each release bundles three artifacts:

Artifact Target
c0wrk-desktop-macos-arm64.zip macOS (Apple Silicon)
c0wrk-desktop-linux-amd64.tar.gz Linux (amd64)
c0wrk-desktop-windows-amd64.zip Windows (amd64)

The ONNX Runtime library and the embedding models ship inside every archive, so vector search works without an extra download on your end.

macOS (Apple Silicon)
  1. Download c0wrk-desktop-macos-arm64.zip and unzip it.

  2. The app is unsigned, so macOS Gatekeeper will block first launch. Clear the quarantine attribute:

    xattr -cr /path/to/c0wrk-desktop.app
    

    Alternatively, right-click c0wrk-desktop.appOpen on first launch, then confirm in the Gatekeeper dialog.

  3. Launch c0wrk-desktop.app.

Linux (amd64)
  1. Download c0wrk-desktop-linux-amd64.tar.gz and extract it:

    tar -xzf c0wrk-desktop-linux-amd64.tar.gz
    
  2. Run the binary:

    ./c0wrk-desktop
    
  3. If the binary can't find libonnxruntime.so, run it from the extraction directory or add that directory to LD_LIBRARY_PATH.

Runtime dependencies (end users only need these shared libraries, not the -dev packages):

# Ubuntu/Debian
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0
Windows (amd64)
  1. Download c0wrk-desktop-windows-amd64.zip and extract it.
  2. The app is unsigned, so Windows SmartScreen may warn "Windows protected your PC". Click More infoRun anyway.
  3. Run c0wrk-desktop.exe.

On first launch c0wrk creates its config automatically, then — once all runtime dependencies are in place — opens a dialog to set up an LLM provider.

Contributing

Interested in hacking on c0wrk? Architecture, build instructions, and the release process live in CONTRIBUTING.md.

License

Licensed under the MIT License.

About

Built by the c0wrk team with warmth, love, and c0wrk.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
config
Package config provides configuration loading and validation for the agent.
Package config provides configuration loading and validation for the agent.
logger
Package logger provides a thin wrapper around Go's standard log/slog for writing structured logs to a session file.
Package logger provides a thin wrapper around Go's standard log/slog for writing structured logs to a session file.
project
Package project provides project-scoped persistence and lifecycle management for the desktop UI layer.
Package project provides project-scoped persistence and lifecycle management for the desktop UI layer.
review
Package review provides SQLite-backed persistence for the per-session code review buffer (a general comment plus hunk-scoped comments) and its lifecycle status.
Package review provides SQLite-backed persistence for the per-session code review buffer (a general comment plus hunk-scoped comments) and its lifecycle status.
session
Package session provides session-scoped event emission for the desktop UI.
Package session provides session-scoped event emission for the desktop UI.
Package core provides the orchestration engine that routes, plans, executes, evaluates, and reflects on agent tasks.
Package core provides the orchestration engine that routes, plans, executes, evaluates, and reflects on agent tasks.
goal
Package goal defines the Goal domain: the user's declared success condition, the budget that constrains how much work the agent may spend reaching it, and the runtime state machine that tracks progress toward (or away from) that condition.
Package goal defines the Goal domain: the user's declared success condition, the budget that constrains how much work the agent may spend reaching it, and the runtime state machine that tracks progress toward (or away from) that condition.
markitdown
Package markitdown converts supported documents to Markdown by shelling out to the managed markitdown CLI (pre-installed at ~/.c0wrk/tools/bin and prepended to PATH during application startup).
Package markitdown converts supported documents to Markdown by shelling out to the managed markitdown CLI (pre-installed at ~/.c0wrk/tools/bin and prepended to PATH during application startup).
prompts
Package prompts provides embedded prompt templates used by LLM agents.
Package prompts provides embedded prompt templates used by LLM agents.
proxy
Package proxy provides HTTP proxy infrastructure for c0wrk LLM API clients.
Package proxy provides HTTP proxy infrastructure for c0wrk LLM API clients.
smallllm
Package smallllm implements tool-set selection for running the conductor against a "small" LLM.
Package smallllm implements tool-set selection for running the conductor against a "small" LLM.
terminal
Package terminal provides PTY-based shell session management for the desktop UI.
Package terminal provides PTY-based shell session management for the desktop UI.
toolmanager
Package toolmanager manages the lifecycle of external CLI tools required by c0wrk at runtime.
Package toolmanager manages the lifecycle of external CLI tools required by c0wrk at runtime.
vectorindex
Package vectorindex provides vector-based code search for the desktop UI.
Package vectorindex provides vector-based code search for the desktop UI.
vectorindex/lexical
Package lexical provides a BM25-based lexical index backed by bleve.
Package lexical provides a BM25-based lexical index backed by bleve.
workspace
Package workspace manages the workspace directory tree, file system watching, and workspace-level state for the desktop UI.
Package workspace manages the workspace directory tree, file system watching, and workspace-level state for the desktop UI.
Package desktop implements the Wails desktop application layer.
Package desktop implements the Wails desktop application layer.
internal
shellresolver
Package shellresolver provides a shared shell binary resolution function used by both the config (shell environment loading) and terminal (PTY session) packages.
Package shellresolver provides a shared shell binary resolution function used by both the config (shell environment loading) and terminal (PTY session) packages.
sysproc
Package sysproc configures process-creation attributes for child processes spawned by the GUI application.
Package sysproc configures process-creation attributes for child processes spawned by the GUI application.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL