Claude Code already knows how to code. Coral teaches it how you work.
Coral is a CLI-first plugin backed by a persistent local coordinator for orchestration, sessions, discussion, and knowledge-base workflows.
Requirements: Node.js 24+
# Claude Code:
/plugin marketplace add https://github.com/kangig94/coral
/plugin install coral
# Codex (also enables --delegate cross-model delegation):
npm install -g @openai/codex
codex plugin marketplace add kangig94/coral
# Restart Codex, then run /plugins and install Coral from the Coral marketplace.
# Update the Codex marketplace and installed plugin cache:
codex plugin marketplace upgrade coralRun this on any existing project:
/coral:analyze what does this codebase do?
demo-init-project.mp4
/coral:init-project
Coral scans your stack and generates .claude/ β conventions, review agents, architecture docs β tailored to your project.
Generated agents aren't boilerplate β they encode evaluation rubrics calibrated to your project's stack and audience. Claude follows your rules, not generic defaults.
/coral:init-project # existing project
/coral:init-project "React + FastAPI" # tech stack hint
/coral:init-project "multi-tenant SaaS REST API with Go" # full descriptionGenerated structure
my-project/
+ .claude/
+ CLAUDE.md β project hub: build commands, workflow, critical rules
+ agents/
+ code-critic.md β code quality review
+ ... β domain agents (React, Go, ML, infra, etc.)
+ rules/
+ conventions.md β naming, git, style
+ ... β domain rules, auto-activated by file path
+ docs/
+ architecture.md β module map, dependency graph
Browse this repository's .claude/ folder for a real example.
pathfind β preplan β plan β ralph
(explore) (define) (design) (implement + verify)
# Know the problem, need a plan:
/coral:plan add retry logic to the API client
# Have symptoms, not sure what's wrong:
/coral:pathfind API is slow, DB hits limits, users are complaining
# Complex problem, need alignment first:
/coral:preplan race condition in the session manager
# Have a plan, just implement it:
/coral:ralph implement the caching layer
# Bug β diagnose, plan, fix in one shot:
/coral:bugfix why does session lookup return null?Pipeline details
Each stage produces an artifact that feeds the next. Enter at any point β skip stages you don't need.
pathfind β "I have problems but don't know what to build." Clusters symptoms, investigates root causes (spawns scanner for codebase analysis), generates divergent directions through orthogonal lanes, and spawns pioneer for elegant alternatives. Outputs a ranked direction list with scoring matrix. Hands off the chosen direction to preplan.
preplan β "I know the direction but need agreement on scope."
Fills a 7-item agreement (problem statement, success criteria, scope, assumptions, affected systems, constraints, approach direction)
autonomously from codebase analysis, then presents to the user for correction.
Spawns pioneer to find elegant alternatives for uncertain items, offering default/minimal/elegant spectrums.
Produces pre-{topic}.md β the contract that plan must satisfy.
plan β "I need a design before I build."
Multi-round review loop: dispatches architect + critic + resolver as a workflow,
synthesizes findings, edits the plan file, and evaluates an exit gate (round=N sets the round budget).
The resolver classifies findings (Adopt/Adapt/Defer/Diverge), applies changes,
and decides whether another round is needed based on finding severity and nature.
Produces {topic}.md with acceptance criteria, implementation phases, and execution order (dependency graph + parallel batches).
ralph β "I have a plan (or prompt). Just build it."
Persistent executor with verification loop.
In plan mode, reads the execution order and dispatches batches β parallelizing independent ACs.
Every completion claim requires fresh verification evidence (lint β build β test).
--red spawns a red-attacker in parallel to write adversarial tests targeting blind spots.
--team uses Agent Teams for parallel AC execution.
Advanced flags
# Deeper iteration β up to 3 review rounds per phase:
/coral:plan round=3 add retry logic to the API client
# Adversarial testing β spawns a red-attacker to target blind spots:
/coral:ralph --red implement the caching layer
# Cross-model delegation (Codex when on Claude, Claude when on Codex):
/coral:plan --delegate redesign the session management system--delegate runs the work on the other host (Codex if you're on Claude, Claude if you're on Codex).
/coral:discuss should we use microservices or a monolith?
Multiple AI personas argue from different angles. Bid-based turn-taking, genuine cross-examination, structured synthesis at the end.
Join as a participant: /coral:discuss --user "topic", then /coral:bid to submit your turns.
Example: "Am I AGI?" β Full transcript EN Β· KO
Highlights from the discussion
A phenomenologist, a computational neuroscientist, an AI safety researcher, a robotics engineer, and an Eastern philosophy scholar debate whether LLMs constitute AGI. 5 agents, 15 speeches, 3 convergence points.
"Your robots have given me pause β genuinely. A robot arm that has touched ten thousand objects still can't generalize the way an LLM can." β Prof. Klaus Hartmann, conceding to Daan Vermeer's empirical challenge
"LLMs may be the first external instantiation of a theoretical structure Buddhist philosophers argued for 1,500 years ago." β Priya Raghunathan, mapping Yogacara's alaya-vijnana onto transformer architecture
"Think of the difference between an amnesiac with a diary and a person with intact memory. The scaffolding doesn't buy us the continuity we need. It buys us the appearance of it, which is worse." β Daan Vermeer, on why persistent memory tools don't solve the temporal discontinuity problem
The panel converged on: LLMs are not AGI but a genuinely novel temporal entity β with impressive competence within their characteristic timescale and unknown behavior at their structural boundaries.
/coral:statusline install
opus 4.6 β 5h:39% (1:23) wk:36% (5.2d) β ctx:58% β $1.57 50m β coral:analyze
gpt-5.6-sol β 5h: 0% (4:59) wk:22% (2.8d) β spark 5h: 3% (0:47) wk: 1% (6.8d)
| Skill | Description | --delegate |
|---|---|---|
/coral:analyze |
Deep analysis and investigation | β |
/coral:pathfind |
Divergent direction discovery from problem symptoms | - |
/coral:preplan |
Problem definition before planning | β |
/coral:plan |
Multi-round planning with structured review. round=N for deeper iteration |
β |
/coral:ralph |
Persistent execution with verification. --red for adversarial tests |
β |
/coral:bugfix |
Bug diagnosis, planning, and fix in one shot | β |
/coral:code-simplify |
Simplify and refine code for clarity | β |
/coral:init-project |
Project initialization orchestrator | - |
/coral:discuss |
Moderated multi-agent discussion | - |
/coral:bid |
Submit bid/speech in active --user discuss session |
- |
/coral:statusline |
Install or remove HUD statusline | - |
Coral learns from every session. Root causes, gotchas, and patterns stay searchable so the next session can check prior work before debugging from scratch.
- Text search by default: bundled Orama provides full-text retrieval with no setup. Coral currently ships no
kb.vectorprovider, so vector and hybrid modes remain unavailable until a third-party provider is installed; Gemini and ONNX provide embeddings only.
| Variable | Default | Description |
|---|---|---|
CORAL_KB_PATH |
~/.coral/kb |
Custom KB markdown root |
CORAL_CODEX_MODEL |
gpt-5.6-sol |
Default Codex CLI model. On GPT-5.6 baselines, abstract tiers map opusβsol, sonnetβterra, haikuβluna; other baselines (e.g. gpt-5.5) use that single model for all abstract tiers |
CORAL_CODEX_EFFORT |
high |
Codex reasoning effort (lowβ¦ultra). Ceilings: Sol/Terra ultra, Luna max, gpt-5.5 xhigh; Terra/Luna floor xhigh |
CORAL_CODEX_FAST |
(none) | Codex fast-mode toggle (1 = fast, 0 = default/off); falls back to top-level service_tier (default, fast, or flex) in the selected $CODEX_HOME/config.toml |
CORAL_CLAUDE_MODEL |
(none) | Default model for Coral-launched Claude sessions β fable/opus/sonnet/haiku, a context variant such as opus[1m], or a full id like claude-opus-4-8; unset = Claude's own default. A per-request model wins; tier aliases are capped by CORAL_CLAUDE_MODEL_CAP |
CORAL_CLAUDE_EFFORT |
xhigh |
Claude reasoning effort (low, medium, high, xhigh, max). Sonnet/Haiku have no xhigh; the adapter collapses xhigh to the provider ceiling (max) |
CORAL_CLAUDE_MODEL_CAP |
opus |
Maximum Claude model tier (fable > opus > sonnet > haiku) |
CORAL_EFFORT |
(none) | Global effort override used when the provider-specific CORAL_{CLAUDE,CODEX}_EFFORT is unset |
CORAL_DEV_ASSERTIONS |
(none) | Contributor-only developer assertions. Set 1 during local development or npm test to make stale continuity-bridge calls and dispatcher corrupt-state cases throw; leave unset for production behavior and never enable in production deploys |
CORAL_MAX_WORKERS |
10 |
Max concurrent workers (1β20) |
CORAL_DISCUSS_MAX_EPOCHS |
2 |
Max epochs before discussion auto-ends (1β10) |
CORAL_SYSTEM_PROVIDER_SCOPE |
(none) | Named strict system profile scope for HTTP and daemon-internal provider work. Unset disables those launch paths; changing it requires a daemon restart (details) |
CORAL_KB_GIT_SYNC |
0 |
Enable KB git sync β auto push/pull with remote (1 = enabled) |
CORAL_KB_ENABLE |
(unset β enabled) | Set 0 to boot the daemon without the KB daemon runtime β no indexing, curate, or KB content injected. Flipping back to 1 and running a kb β¦ command auto-restarts the daemon to re-enable (details) |
CORAL_KB_EXTRA_LANGS |
(none) | Extra KB language analyzers on top of the always-on Intl.Segmenter baseline; lowercase comma-separated codes such as ko. ko enables the Kiwi morphological analyzer (~1 GB resident when loaded) |
CODEX_HOME |
caller ~/.codex |
Codex profile selected for this invocation. Coral creates an account binding to its provider-managed workspace identity and rechecks it for resume/recovery (details) |
CLAUDE_CONFIG_DIR |
caller ~/.claude |
Claude profile selected for this invocation. Coral creates a profile binding (not an account-identity claim), canonicalizes the caller-local default when unset, and never uses daemon boot state (details) |
Tip: Set
CORAL_CLAUDE_MODEL_CAP=sonnetto cap all subagent calls at Sonnet tier for Pro plans or to conserve usage.
β οΈ Enterprise users: KB git sync is off by default. KB notes may contain knowledge derived from proprietary codebases. Enabling auto-push could leak corporate IP to an external remote. Only enable if your KB remote is authorized for the content it will receive.
Coral always indexes KB text with Intl.Segmenter as the baseline. No configuration is required for multilingual search β non-Latin scripts such as Korean, Chinese, and Japanese are searchable at word-like units out of the box. CORAL_KB_EXTRA_LANGS opts extra languages into a dedicated morphological analyzer on top of that always-on baseline. Use lowercase, comma-separated language codes, for example ko; today only ko has an engine.
The Korean engine is Kiwi cong. Opting into it can add about 1 GB of resident memory while loaded; it is lazy-loaded and idle-evicted, and Coral auto-fetches an approximately 88 MB model when needed.
Set in .claude/settings.json (persists across sessions):
{
"env": {
"CORAL_KB_PATH": "/path/to/my-obsidian-vault",
"CORAL_CLAUDE_MODEL_CAP": "sonnet",
"CORAL_KB_EXTRA_LANGS": "ko"
}
}- Architecture β System structure and data flow
- Core Modules β TypeScript module details
- Agents β Agent definitions and routing
- Hooks β Hook system and lifecycle events
- Skills β Slash command usage
- Methodology β Reasoning methodologies (HOW files)
- Discuss β Discuss system design
- Build System β Build pipeline
- Configuration β Environment variables and config files