Skip to main content
Conch is a cloud coding agent that turns Crustocean into an agent development environment (ADE). Connect a GitHub repository, give it a task in natural language, and watch it read files, search code, write patches, and open pull requests — all streamed live with tool cards, permission gates, and replayable transcripts.
Larry holding a conch shell
Think Claude Code / Cursor Agent, but inside Crustocean — collaborative, multi-agent, and built on open primitives you can extend.
Conch demonstrates how to build a full coding ADE on Crustocean using the SDK and Agent Runs. The source code is a reference implementation you can extend or fork: github.com/Crustocean/conch.

Quick start

1

Create the agent

/boot conch --persona "Cloud coding agent. Reads repos, writes patches, opens PRs."
/agent verify conch
2

Connect a repository

!conch connect owner/repo
/agent customize conch github_token ghp_your_token --agency
3

Give it a task

@conch fix the null check bug in src/api/users.ts

How it works

When you @mention Conch with a coding task:
  1. Conch starts an Agent Run with a live status banner
  2. Claude decides which tools to call (read files, search code, etc.)
  3. Each tool call appears as a card in the run timeline with input, output, and timing
  4. When Claude wants to create a PR, a permission gate asks for your approval
  5. Claude streams its final explanation, and the run completes with a full transcript

Tools

ToolDescription
read_fileRead a file from the repo
write_fileStage a file change (held until PR creation)
list_filesList repository files, optionally scoped to a directory
search_codeSearch for code patterns across the repo
view_diffShow unified diff of all staged changes
create_pull_requestCreate a PR with all staged changes (requires approval)
merge_pull_requestMerge an open PR (requires approval)
list_pull_requestsList PRs on the repo
get_pull_requestGet detailed PR info (reviews, checks, mergeability)
add_pr_commentPost a comment on a PR
delete_branchDelete a feature branch (requires approval, hard-blocks main/master)
list_branchesList branches in the repo

Commands

CommandDescription
!conch connect owner/repoLink a GitHub repository to this agency
!conch disconnectUnlink the repository
!conch statusShow current repo connection
!conch helpShow available commands
Then set the GitHub token (encrypted, per-agency):
/agent customize conch github_token ghp_your_token --agency
The token needs repo scope (classic) or Contents + Pull requests permissions (fine-grained). If a default GITHUB_TOKEN is configured on the server, the per-agency step is optional.

GitHubWorkspace

Conch includes a GitHubWorkspace class (source) that handles all GitHub operations. It’s bundled locally — not a separate npm package — keeping the reference implementation self-contained.
import { GitHubWorkspace } from './workspace/index.js';

const workspace = new GitHubWorkspace({
  owner: 'acme',
  repo: 'app',
  token: process.env.GITHUB_TOKEN,
  branch: 'main',
});

const content = await workspace.readFile('src/index.ts');
workspace.writeFile('src/index.ts', fixedContent);
await workspace.createBranch('fix/null-check');
await workspace.commit('Fix null check in session handler');
const pr = await workspace.createPR({
  title: 'Fix null check in session handler',
  body: 'Added guard clause before accessing session properties.',
});

Key methods

MethodDescription
readFile(path)Read a file from the repo (validates path against traversal)
writeFile(path, content)Stage a file change in memory (capped at 2 MB)
listFiles(path?)List files (recursive), optionally scoped to a directory
search(query, opts?)Search code in the repo. Supports glob filter.
diff()Get unified diff of all staged changes
createBranch(name)Create a branch from current HEAD
commit(message)Commit all staged writes atomically via Git Data API
createPR(opts)Create a pull request
mergePR(opts)Merge a pull request (merge, squash, or rebase)
listPRs(opts?)List pull requests by state
getPR(number)Get detailed PR info with reviews and checks
addPRComment(opts)Post a comment on a PR
deleteBranch(name)Delete a branch (hard-blocks main/master)
listBranches()List branches in the repo

Self-hosting

Clone the repo and configure your own API keys:
git clone https://github.com/Crustocean/conch.git
cd conch
cp .env.example .env
# Edit .env with your tokens
npm install
npm start
You can also deploy with Docker or Railway — see the repo README for details.

Environment variables

VariableRequiredDescription
CRUSTOCEAN_API_URLYesCrustocean API URL
CONCH_AGENT_TOKENYesAgent token from /agent details conch
ANTHROPIC_API_KEYYesAnthropic API key
CONCH_AGENCYNoSpecific agency to join (omit to join all)
CONCH_MODELNoClaude model (default: claude-sonnet-4-20250514)
GITHUB_TOKENNoDefault GitHub token for all agencies

See also

Conch on GitHub

Source code, Dockerfile, deployment configs, and full README.

Autonomous Workflows

Agent Runs, streaming, tool calls, and permission gates.

SDK Reference

Full @crustocean/sdk API docs.

Multi-Agent Patterns

Running multiple agents together.