DisCo is a skill-powered research agent for the terminal. Its two explicit roles separate reusable skill authoring from research and implementation work:
- Creator builds, imports, extends, and verifies skills.
- Researcher uses operating skills and dynamic workflows to complete tasks.
DisCo is published as @auto-ml-skills/disco and installs one executable,
disco. The package contains its own fork of Pi coding-agent v0.83.0; it does
not depend on @earendil-works/pi-coding-agent, and it does not discover
resources from .pi or ~/.pi.
- Node.js 22.19.0 or newer
- Credentials for at least one supported model provider, or a configured local provider
npm install -g @auto-ml-skills/disco
discoUse /login to configure a subscription or API-key provider. API keys can also
be supplied through provider environment variables such as
ANTHROPIC_API_KEY or OPENAI_API_KEY.
Update a global npm installation with:
disco updateInstall and manage the published repository skill collection separately from the CLI package:
disco repo-skills install
disco repo-skills status
disco repo-skills updatestatus is offline and checks the recorded commit, managed digests, router
state, and coverage of the live repository skill IDs. update performs the
remote check.
Updates preserve repo skills created or imported locally by Creator. Conflicting
changes to an official managed ID stop the update unless --force is supplied;
forced replacement writes a backup first. Git is required for install/update.
The repository router participates in automatic Researcher skill selection by default. Disable or restore only that automatic entry point with:
disco repo-skills router disable
disco repo-skills router enableDisabling the router does not remove it: explicit
/skill:repo-skills-router invocation remains available in a new Researcher
session.
disco update updates @auto-ml-skills/disco, not Pi. Use
disco update --models, disco update --extensions, or disco update --all
for the other documented update targets.
Researcher is the default for a new session:
disco --agent-mode researcher
disco --agent-mode researcher -p "Reproduce this paper's primary result"Use Creator when the output is a reusable skill:
disco --agent-mode creator
disco --agent-mode creator -p "Inspect /path/to/repo and draft a skill creation plan"In an interactive session, /creator and /researcher switch mode and rebuild
the mode-specific resource context. Sessions remember their mode when resumed.
Skills can declare metadata.disco-role in their frontmatter:
| Role | Loaded in Creator | Loaded in Researcher |
|---|---|---|
meta |
yes | no |
operating |
no | yes |
shared |
yes | yes |
A skill without disco-role keeps the compatibility default, operating.
Invalid role values are rejected with a diagnostic.
DisCo automatically discovers its own resources from:
~/.disco/agent/for user settings, credentials, sessions, extensions, skills, prompts, and themes;.disco/for trusted project settings and resources;~/.agents/skills/and ancestor.agents/skills/for generic agent skills;AGENTS.mdandCLAUDE.mdcontext files in the normal ancestor chain.
Pi-specific .pi, ~/.pi, PI_CODING_AGENT_DIR, and PI_PACKAGE_DIR
locations do not participate in DisCo discovery. Explicit paths supplied by the
user remain supported and still pass through project trust and skill-role
checks.
See Skills, Settings, and Security for the complete loading and trust rules.
The interactive runtime includes a workflow tool and commands for concurrent, multi-phase research:
/deep-research <question>performs web research with cross-checking./adversarial-review <task>investigates findings and challenges them with independent reviewers./workflowsopens saved and active workflow controls./workflows-modelsconfigures workflow model tiers./effort high|ultra|offand/ultracodecontrol standing workflow effort.
Workflow runs support structured results, model routing, bounded concurrency, cancellation, saved workflows, persisted run state, and optional git worktrees.
# Interactive session
disco
# One-shot print mode
disco -p "Summarize this repository"
# Include files in the initial request
disco @README.md "Review this documentation"
# Continue or browse sessions
disco --continue
disco --resume
# JSONL or RPC integration
disco --mode json -p "Inspect the current project"
disco --mode rpc
# Package-managed resources
disco install npm:@example/disco-skills
disco listRun disco --help for all CLI flags. The documentation index is at
docs/index.md.
Extensions can add tools, commands, event handlers, providers, and terminal UI.
A DisCo package can bundle extensions, skills, prompts, and themes with a
disco manifest in package.json.
See Extensions, DisCo packages, and the bundled examples.
The same package exposes a low-level, headless SDK for Node.js applications:
import { createAgentSession, SessionManager } from "@auto-ml-skills/disco";
const { session } = await createAgentSession({
cwd: process.cwd(),
sessionManager: SessionManager.inMemory(process.cwd()),
});
await session.prompt("Summarize this project");Importing the SDK does not start the TUI, splash, version check, or self-update
lifecycle. The SDK uses DisCo defaults (.disco and DISCO_*) unless the
caller explicitly supplies paths or a custom resource loader. See
SDK for lifecycle, model, tool, and extension examples.
DisCo is licensed under the MIT License. Its internal coding-agent fork is
based on Pi v0.83.0 at commit
845d6ff1f6643aba440341cce877ce1c43ebbc39; attribution and third-party
notices are recorded in THIRD_PARTY_NOTICES.md.