crabcode

Quickstart

Install crabcode, connect a provider, and start your first coding session.

Get from zero to coding

Install crabcode, connect an AI provider, and ask it to help with your project.

  1. Install crabcode

    Choose one installation method:

    npm install -g crabcode
    bun install -g crabcode

    Install a prebuilt binary with cargo-binstall:

    cargo binstall crabcode

    Build from source with Cargo:

    cargo install crabcode

    On Linux or macOS:

    curl -sSL https://raw.githubusercontent.com/Blankeos/crabcode/main/install.sh | sh

    TIP

    Already installed? Run crabcode upgrade to get the latest release, then restart crabcode. It detects your installation method automatically. To install a specific version, use crabcode upgrade 0.0.13 (version pinning is not supported for Homebrew installs).

  2. Open your project

    In your terminal, change to your project directory and launch crabcode:

    cd /path/to/your/project
    crabcode
  3. Connect a provider

    Run /connect inside crabcode and follow the prompts to connect a provider, such as OpenAI or Anthropic. Use /models to choose a model.

  4. Start your first session

    Type a request in the prompt, just as you would ask a teammate:

    • Ask questions: "Explain the main function in src/lib.rs"
    • Request changes: "Add error handling to this module"
    • Plan first: /plan when you're not sure how to approach something
    • Build directly: /build when you know what you want done

Custom slash commands can live in .opencode/commands/ or .crabcode/commands/. crabcode reads the OpenCode command format.


Skip permission prompts (dangerous)

WARNING

Only use --yolo in a trusted, isolated workspace. It skips permission prompts, including requests to access paths outside your workspace, and does not provide a sandbox.

--yolo is an alias of --dangerously-skip-permissions:

crabcode --yolo                         # Interactive session
crabcode -p --yolo "Run the test suite"  # Non-interactive execution

Explicit deny rules, disabled tools, and agent tool restrictions still apply. Normal permission behavior remains the default; this flag only affects the current invocation and does not save a preference.

The flag applies to local interactive and print modes, not remote --attach, serve, or ACP sessions.

Configure crabcode

crabcode uses JSONC (JSON with comments). Create a crabcode.jsonc in your project:

{
  "theme": "default",
  "model": "openai/gpt-5.2",
  "notifications": {
    "complete": {
      "terminal": "auto",
      "soundEnabled": true,
      "desktop": true,
    },
    "error": {
      "soundEnabled": true,
    },
  },
}

How config merging works

crabcode reads up to four files (highest priority wins):

  1. OpenCode global (~/.config/opencode/opencode.jsonc)
  2. crabcode global (~/.config/crabcode/crabcode.jsonc)
  3. OpenCode local (.opencode/opencode.jsonc in your project)
  4. crabcode local (crabcode.jsonc in your project)

Set your defaults globally, override per-project when needed. See the full configuration reference.

Open files in your editor

Clicked paths, image placeholders, and binary links open in a detected Zed / VS Code / Cursor integrated editor, otherwise in the system default application. Detected editors preserve line and column jumps. See Editor Integration for practical Helix and Neovim recipes, or Editor config for the unified opener reference.

Use an editor through ACP

Start an ACP-compatible editor integration with:

crabcode acp

See ACP Integration for editor configuration and the current capability matrix.

List available models

Print selectable models in provider/model format:

crabcode models
crabcode models openai

The optional provider argument is an exact provider ID. This command uses the same local credentials, custom providers, free models, and runtime model catalog as crabcode.


Common commands

Once you're in crabcode:

CommandWhat it does
/sessionsBrowse and resume previous conversations
/newStart fresh
/connectAdd or switch providers
/modelsSee available models and their costs
/exit or Ctrl+CQuit

Where your data lives

WhatDefaultWith XDG_STATE_HOME
Credentials~/.local/state/crabcode/auth.json$XDG_STATE_HOME/crabcode/auth.json
Preferences and Sessions~/.local/state/crabcode/data.db$XDG_STATE_HOME/crabcode/data.db
Model cache~/.local/state/crabcode/cache/models_dev_cache.json$XDG_STATE_HOME/crabcode/cache/models_dev_cache.json
Bundled notification sounds~/.local/state/crabcode/sounds$XDG_STATE_HOME/crabcode/sounds