@globant/coda-darwin-x64 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agents/coda-help.md +166 -0
- package/assets/agents/create-workflow.md +264 -0
- package/assets/agents/explore.md +26 -0
- package/assets/docs/agents.md +162 -0
- package/assets/docs/cli-reference.md +131 -0
- package/assets/docs/cli-vs-batch.md +58 -0
- package/assets/docs/config-json.md +314 -0
- package/assets/docs/config-reference.md +329 -0
- package/assets/docs/configuration.md +105 -0
- package/assets/docs/connect-provider.md +77 -0
- package/assets/docs/extensions.md +260 -0
- package/assets/docs/faq.md +152 -0
- package/assets/docs/glossary.md +41 -0
- package/assets/docs/guide-automate.md +135 -0
- package/assets/docs/guide-changes.md +101 -0
- package/assets/docs/guide-collaborate.md +119 -0
- package/assets/docs/guide-extend.md +120 -0
- package/assets/docs/guide-understand.md +95 -0
- package/assets/docs/hooks.md +704 -0
- package/assets/docs/how-it-works.md +73 -0
- package/assets/docs/index.md +62 -0
- package/assets/docs/installation.md +71 -0
- package/assets/docs/logging.md +123 -0
- package/assets/docs/overview.md +91 -0
- package/assets/docs/permissions.md +93 -0
- package/assets/docs/quickstart.md +104 -0
- package/assets/docs/sessions.md +139 -0
- package/assets/docs/shortcuts.md +61 -0
- package/assets/docs/tools-reference.md +81 -0
- package/assets/docs/workflows.md +146 -0
- package/assets/skills/create-extension/SKILL.md +293 -0
- package/assets/skills/create-hook/SKILL.md +442 -0
- package/assets/skills/create-skill/SKILL.md +180 -0
- package/assets/skills/plan/SKILL.md +25 -0
- package/coda +0 -0
- package/lib/keytar/build/Release/keytar.node +0 -0
- package/lib/keytar/lib/keytar.js +43 -0
- package/lib/opentui/assets/javascript/highlights.scm +205 -0
- package/lib/opentui/assets/javascript/tree-sitter-javascript.wasm +0 -0
- package/lib/opentui/assets/markdown/highlights.scm +150 -0
- package/lib/opentui/assets/markdown/injections.scm +27 -0
- package/lib/opentui/assets/markdown/tree-sitter-markdown.wasm +0 -0
- package/lib/opentui/assets/markdown_inline/highlights.scm +115 -0
- package/lib/opentui/assets/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
- package/lib/opentui/assets/typescript/highlights.scm +604 -0
- package/lib/opentui/assets/typescript/tree-sitter-typescript.wasm +0 -0
- package/lib/opentui/assets/zig/highlights.scm +284 -0
- package/lib/opentui/assets/zig/tree-sitter-zig.wasm +0 -0
- package/lib/opentui/libopentui.dylib +0 -0
- package/lib/opentui/parser.worker.js +4244 -0
- package/lib/opentui/tree-sitter-3jzf13jk.wasm +0 -0
- package/lib/ripgrep/COPYING +3 -0
- package/lib/ripgrep/LICENSE-MIT +21 -0
- package/lib/ripgrep/UNLICENSE +24 -0
- package/lib/ripgrep/rg +0 -0
- package/package.json +20 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Make Changes Safely
|
|
2
|
+
|
|
3
|
+
CODA is designed for real work on real codebases — which means it needs to be safe to use. This guide explains how CODA protects your work, how to stay in control while it makes changes, and how to undo anything that goes wrong.
|
|
4
|
+
|
|
5
|
+
## Checkpoints: your undo button
|
|
6
|
+
|
|
7
|
+
Before each turn, CODA takes a checkpoint — a snapshot of your files **before it acts on your latest message**. Restoring that checkpoint brings the worktree back to the state it had right before that message was processed. To see and restore checkpoints, open the timeline picker with `/timeline` (or its alias `/rewind`, or press **Esc** twice) and select the point to restore to.
|
|
8
|
+
|
|
9
|
+
In addition to per-turn snapshots, CODA automatically takes an extra snapshot labelled `pre_destructive_bash` immediately before any destructive shell command (`rm`, `mv`, `sed -i`, `git reset`, `git clean`, `git checkout`, and similar). These appear in `/timeline` alongside the regular per-turn snapshots, so you can restore to the state right before a file deletion or rebase even if it happened mid-turn.
|
|
10
|
+
|
|
11
|
+
For how checkpoints work in detail — the shadow repo, Git requirements, and how restoring rewinds the conversation — see [Sessions & Checkpoints](#sessions).
|
|
12
|
+
|
|
13
|
+
## Approve commands as they run
|
|
14
|
+
|
|
15
|
+
When CODA wants to run a shell command, it shows you what it's about to execute and waits for your approval — press **Y** to allow it or **N** to skip it. By default, CODA auto-approves low-risk commands (like `git status` or `cat`) and asks before anything that writes or deletes files.
|
|
16
|
+
|
|
17
|
+
How much runs without asking depends on your **bash approval level**, which you set from `/settings` → **Bash Tool Preferences**:
|
|
18
|
+
|
|
19
|
+
| Level | What it auto-approves |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `safe` | Read-only commands only (`ls`, `cat`, `git status`) |
|
|
22
|
+
| `low` | Safe commands plus low-risk writes — `mkdir`/`touch`/`cp`, package installs/tests, `git add`/`commit`/`checkout`/`stash`/`switch`/`restore` (**default**) |
|
|
23
|
+
| `medium` | Adds riskier operations — `mv`/`rm`, `git push`/`pull`/`merge`/`rebase`/`reset`, `chmod`/`chown` |
|
|
24
|
+
| `high` | Everything except clearly destructive operations (`rm -rf /`, disk format) |
|
|
25
|
+
|
|
26
|
+
See [Configuration](#configuration) for more on adjusting this per project.
|
|
27
|
+
|
|
28
|
+
## Interrupt early if something looks wrong
|
|
29
|
+
|
|
30
|
+
If you see CODA going in the wrong direction, don't wait for it to finish — interrupt as soon as you notice:
|
|
31
|
+
|
|
32
|
+
- Press **Esc** to stop the current turn
|
|
33
|
+
- Then redirect: "Stop — I didn't mean to change that file. Undo those changes and let's try a different approach."
|
|
34
|
+
|
|
35
|
+
The earlier you interrupt, the easier it is to recover. Letting CODA run to completion and then asking it to undo everything is much messier than stopping it mid-stream.
|
|
36
|
+
|
|
37
|
+
## Send a message while CODA is working
|
|
38
|
+
|
|
39
|
+
You don't have to stop the turn to react. You can type while CODA is busy, and a setting controls what happens when you hit **Enter**. Choose it from `/settings` → **Composer**. This controls the **chat input** behavior while CODA is busy:
|
|
40
|
+
|
|
41
|
+
- **Queue** (default) — your message waits and is delivered as the next turn once the current one finishes.
|
|
42
|
+
- **Steer** — your message is injected into the run in progress, nudging CODA mid-turn without interrupting it.
|
|
43
|
+
|
|
44
|
+
If you queued messages and change your mind, press **Ctrl+G** to clear the queue.
|
|
45
|
+
|
|
46
|
+
## A safe workflow for bigger changes
|
|
47
|
+
|
|
48
|
+
For anything non-trivial, use this pattern:
|
|
49
|
+
|
|
50
|
+
1. **Explore first, change later.** Ask CODA to explain what it would do before it does it: *"List the files you'd need to change for X, but don't make any edits yet."*
|
|
51
|
+
2. **Work in small steps.** Instead of "implement the whole feature", break it into "add the model", then "add the controller", then "add the tests". Checkpoint between each.
|
|
52
|
+
3. **Review after each step.** Use `/timeline` to verify what changed before moving to the next step.
|
|
53
|
+
4. **Test often.** Ask CODA to run your test suite after each significant change: *"Run the tests for the billing module now."*
|
|
54
|
+
|
|
55
|
+
## Common undo scenarios
|
|
56
|
+
|
|
57
|
+
**CODA edited the wrong file**
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
Undo the last change you made to UserService.java — you edited the wrong method.
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**A whole batch of changes went wrong**
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
/timeline
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Select the snapshot from before the bad changes. CODA restores your files to that state.
|
|
70
|
+
|
|
71
|
+
**You want to start the session over**
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
/new
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Starts a fresh session. The old session is still saved and resumable — see [Sessions & Checkpoints](#sessions).
|
|
78
|
+
|
|
79
|
+
## Let CODA verify its own work
|
|
80
|
+
|
|
81
|
+
The safest changes are the ones CODA checks before handing back. Make verification part of the request:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
Implement the fix, then run `pnpm lint && pnpm type-check && pnpm test` and don't consider it done until they pass.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
If your project has an `AGENTS.md` with a "quality gate" section, CODA follows it automatically — see [Collaborate with Your Team](#guide-collaborate). When a check fails, ask CODA to diagnose and fix rather than reverting blindly.
|
|
88
|
+
|
|
89
|
+
## A quick mental model for staying in control
|
|
90
|
+
|
|
91
|
+
1. **Checkpoint** — every turn is snapshotted before it runs, so you can always go back.
|
|
92
|
+
2. **Approve** — risky shell commands and unread-file overwrites pause for your **Y**/**N**.
|
|
93
|
+
3. **Interrupt** — **Esc** stops a turn the instant it heads the wrong way.
|
|
94
|
+
4. **Steer or queue** — react without stopping the turn (`/settings` → **Composer**).
|
|
95
|
+
5. **Undo** — `/timeline` (or **Esc Esc**) rewinds files *and* the conversation to a chosen point.
|
|
96
|
+
|
|
97
|
+
## See also
|
|
98
|
+
|
|
99
|
+
- [Sessions & Checkpoints](#sessions) — the shadow repo, drift detection, and what a snapshot captures.
|
|
100
|
+
- [Permissions & Approvals](#permissions) — bash approval levels and the anti-clobber guard in depth.
|
|
101
|
+
- [Configuration](#configuration) — set your default approval level and composer behavior.
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Collaborate with Your Team
|
|
2
|
+
|
|
3
|
+
CODA works best when the whole team uses it consistently. This guide covers how to share conventions, skills, and configuration so every developer on the project gets the same quality of assistance.
|
|
4
|
+
|
|
5
|
+
## Start with AGENTS.md
|
|
6
|
+
|
|
7
|
+
`AGENTS.md` is the most important file for team collaboration. CODA reads it at the start of every session and uses it to understand your project's conventions — coding style, testing approach, which areas to avoid, how to run the quality checks.
|
|
8
|
+
|
|
9
|
+
CODA looks for it at your project root (`<project>/AGENTS.md`) first, and falls back to `<project>/.coda/AGENTS.md` if the root file isn't present. Put it at the root for visibility, or under `.coda/` if you prefer to keep it out of the top level.
|
|
10
|
+
|
|
11
|
+
Create or update it with `/init` and then edit it to add what CODA missed. A typical `AGENTS.md` looks like this:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
# AGENTS.md
|
|
15
|
+
|
|
16
|
+
## Project conventions
|
|
17
|
+
- Use TypeScript strict mode everywhere
|
|
18
|
+
- All database queries must use parameterized statements
|
|
19
|
+
- New features must include unit tests and at least one integration test
|
|
20
|
+
|
|
21
|
+
## How to run tests
|
|
22
|
+
pnpm test # unit tests
|
|
23
|
+
pnpm test:integration # integration tests
|
|
24
|
+
pnpm lint # linting
|
|
25
|
+
pnpm type-check # TypeScript check
|
|
26
|
+
|
|
27
|
+
## Quality gate — always run before finishing a task
|
|
28
|
+
pnpm lint && pnpm type-check && pnpm test
|
|
29
|
+
|
|
30
|
+
## Do not change
|
|
31
|
+
- The public API in src/api/v1/ without team approval
|
|
32
|
+
- The database schema without a migration
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Commit `AGENTS.md` to Git. Every developer who runs CODA in this project gets these conventions automatically.
|
|
36
|
+
|
|
37
|
+
## Share skills across the team
|
|
38
|
+
|
|
39
|
+
Skills are per-project when placed in `<project>/.coda/skills/`. Commit them to the repository and everyone can invoke them — or manage them from the `/skills` manager inside CODA.
|
|
40
|
+
|
|
41
|
+
Good candidates for shared skills:
|
|
42
|
+
|
|
43
|
+
- PR review checklists specific to your project
|
|
44
|
+
- Debugging workflows for common issues
|
|
45
|
+
- Documentation generation templates
|
|
46
|
+
- Deployment pre-flight checklists
|
|
47
|
+
|
|
48
|
+
Once committed, any developer on the team can invoke them by name:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
/pr-review
|
|
52
|
+
/debug-api-error
|
|
53
|
+
/generate-docs
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## What to commit (and what not to)
|
|
57
|
+
|
|
58
|
+
The most valuable things to share live in the repo and apply to everyone who clones it:
|
|
59
|
+
|
|
60
|
+
- **`AGENTS.md`** — your project conventions and quality gates.
|
|
61
|
+
- **Skills** in `<project>/.coda/skills/` — shared workflows the whole team can invoke.
|
|
62
|
+
- **MCP servers** in `<project>/.coda/mcp.json` — the external services this project connects to.
|
|
63
|
+
|
|
64
|
+
A project-level `<project>/.coda/config.json` is also **safe to commit** — it never holds secrets (those live in `~/.coda/.secrets`, which is never committed). But be selective about what you put there:
|
|
65
|
+
|
|
66
|
+
- **Don't commit the active provider.** Which provider you use (a specific Glob.AI OS instance, or a local Ollama) is a personal, machine-specific choice, and provider profiles are defined in each developer's own global config. Pinning it in the repo can break teammates who don't have that profile.
|
|
67
|
+
- **Think twice before committing an elevated bash approval level.** Raising `autoApproveLevel` for the whole project means everyone who clones the repo runs more commands without being asked — a safety trade-off your team should agree on first.
|
|
68
|
+
|
|
69
|
+
In short: share **conventions and workflows**, keep **personal and security preferences** local.
|
|
70
|
+
|
|
71
|
+
## Working in a monorepo
|
|
72
|
+
|
|
73
|
+
CODA loads exactly one `AGENTS.md` — the one in the directory where you launch it. **For `AGENTS.md` specifically**, there is no upward directory walk and no merging of parent files. (Agent definitions and workflow modules _do_ walk upward to parent directories, so placing them closer to the repo root makes them available to nested package launches automatically.)
|
|
74
|
+
|
|
75
|
+
In a monorepo, launch CODA from the package directory you're working in:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
cd packages/billing
|
|
79
|
+
coda # loads packages/billing/AGENTS.md
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Put conventions that apply everywhere in each package's `AGENTS.md`, or maintain a root-level one and symlink it into each package.
|
|
83
|
+
|
|
84
|
+
## Share agents and workflows too
|
|
85
|
+
|
|
86
|
+
Beyond skills, two more team assets live in the repo and ship to everyone who clones it:
|
|
87
|
+
|
|
88
|
+
- **Agents** in `<project>/.coda/agents/` — reusable specialist profiles (a project-specific reviewer, a migration helper). See [Agents](#agents).
|
|
89
|
+
- **Workflows** in `<project>/.coda/workflows/` — multi-agent orchestrations like a repo-wide audit. See [Workflows](#workflows).
|
|
90
|
+
|
|
91
|
+
Both are discovered automatically and need no per-developer setup — committing the file is all it takes.
|
|
92
|
+
|
|
93
|
+
## A suggested `.gitignore` posture
|
|
94
|
+
|
|
95
|
+
To keep shared assets in and personal/secret state out, a typical project ignores:
|
|
96
|
+
|
|
97
|
+
```gitignore
|
|
98
|
+
# Personal/local CODA state — do not commit
|
|
99
|
+
.coda/MEMORY.md
|
|
100
|
+
# Generated, project-local caches CODA writes at runtime
|
|
101
|
+
.coda/fgr/
|
|
102
|
+
.coda/omni-parser/
|
|
103
|
+
.coda/workflows-docs/
|
|
104
|
+
.coda/offload/
|
|
105
|
+
.coda/checkpoint-repo/
|
|
106
|
+
|
|
107
|
+
# Shared CODA assets — DO commit (leave these tracked)
|
|
108
|
+
# .coda/skills/ .coda/agents/ .coda/workflows/ .coda/mcp.json AGENTS.md
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Note that **session records aren't stored in your project** — they live in the global `~/.coda/coda.db` (see [Sessions & Checkpoints](#sessions)), so there's nothing session-related to ignore here. Secrets never live in the repo at all — they're in `~/.coda/.secrets`, outside the project.
|
|
112
|
+
|
|
113
|
+
> **Watch out for `.env` files.** CODA also loads environment variables from a `.coda/.env` or `.env` file in the project directory. These files may contain API keys or other secrets and should **never** be committed. Add `.coda/.env` and `.env` to your `.gitignore` and use `~/.coda/.secrets` for per-developer secrets instead.
|
|
114
|
+
|
|
115
|
+
## See also
|
|
116
|
+
|
|
117
|
+
- [Agents](#agents) and [Workflows](#workflows) — shareable delegation assets.
|
|
118
|
+
- [Extend CODA](#guide-extend) — skills, extensions, plugins, and MCP for the whole team.
|
|
119
|
+
- [Configuration](#configuration) — what a project-level `config.json` can and shouldn't pin.
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Extend CODA
|
|
2
|
+
|
|
3
|
+
Out of the box, CODA can read files, run shell commands, and use its built-in tools. But you can extend it significantly: connect external services via MCP, teach it reusable workflows via skills, or automate complex integrations with extensions and plugins.
|
|
4
|
+
|
|
5
|
+
## Which extension mechanism do I want?
|
|
6
|
+
|
|
7
|
+
These five mechanisms overlap, so start by matching your goal to the simplest option that fits:
|
|
8
|
+
|
|
9
|
+
| You want to… | Use | Why |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Let CODA call an external service (GitHub, a DB, an internal API) | **MCP server** | Speaks a standard protocol; no code to write if the service ships one |
|
|
12
|
+
| Capture a repeatable *process* in plain words (a PR-review checklist, a debug routine) | **Skill** | Just a Markdown file with frontmatter; invoked with `/name` |
|
|
13
|
+
| Add a custom tool, slash command, or hook in code | **Extension** | TypeScript with the full `ExtensionAPI` |
|
|
14
|
+
| Delegate one focused task to a child session | **Agent** | A reusable persona CODA can run on its own |
|
|
15
|
+
| Orchestrate *many* agents (a repo-wide audit, fan-out + verify) | **Workflow** | A deterministic script over multiple agent runs |
|
|
16
|
+
| Bundle and version several of the above to share | **Plugin** | Ships skills, agents, extensions, and MCP fragments together |
|
|
17
|
+
|
|
18
|
+
Rule of thumb: prefer a **skill** for "how we do X," an **MCP server** for "talk to Y," and an **extension** only when you need real code. Reach for **workflows** when one agent isn't enough.
|
|
19
|
+
|
|
20
|
+
## Connect external services with MCP
|
|
21
|
+
|
|
22
|
+
MCP (Model Context Protocol) servers let CODA talk to external services — your issue tracker, CI system, database, or any internal tool that exposes an MCP interface. Once connected, CODA can use these tools automatically when they're relevant to the task.
|
|
23
|
+
|
|
24
|
+
Everything happens from inside CODA through the `/mcp` manager:
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
/mcp
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
From there you can **add a server** (paste its JSON or import it from a file), edit the global or project `mcp.json`, list configured servers and their connection status, view the tools each one exposes, enable or disable servers for the session, and reload after a change — no need to hand-edit files outside the app.
|
|
31
|
+
|
|
32
|
+
**Where MCP servers are defined.** Servers live in `mcp.json` files that layer like the rest of your config: `~/.coda/mcp.json` (global) and `<project>/.coda/mcp.json` (project). A third, session-level file at `~/.coda/sessions/<sessionId>/mcp.json` holds per-session overrides — including a disable-only shorthand `{ "disabled": true }` to switch a higher-tier server off for one session. Each server entry is either **stdio** (`command` plus optional `args`/`env`) or **HTTP** (`url`, optional `headers`/token); add `"disabled": true` to any entry to keep it but turn it off. (CODA builds the live server map from `mcp.json` + plugins + `--mcp-config`, so prefer `mcp.json` over the `mcp.servers` block in `config.json`.)
|
|
33
|
+
|
|
34
|
+
Once a server is connected, CODA can use its tools automatically — you just describe what you want in plain language. For example, with a **GitHub MCP server** connected, you could ask:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Create a GitHub issue for the bug we just found in the payment flow. Title it "NullPointerException in PaymentProcessor.processRefund".
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
CODA recognizes that the GitHub server exposes an issue-creating tool and calls it for you. Without that server connected, this prompt has nothing to act on — the tools come from the MCP servers you add.
|
|
41
|
+
|
|
42
|
+
## Teach CODA repeatable workflows with skills
|
|
43
|
+
|
|
44
|
+
A skill is a Markdown file that describes a repeatable process — like "how to review a PR" or "how to write tests for this project." Once you create a skill, you can invoke it with a slash command in any session.
|
|
45
|
+
|
|
46
|
+
Create a skill file:
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
---
|
|
50
|
+
name: pr-review
|
|
51
|
+
description: Review a pull request for code quality, test coverage, and potential issues.
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
1. Read the diff carefully.
|
|
55
|
+
2. Check that every changed function has test coverage.
|
|
56
|
+
3. Flag any SQL queries that aren't parameterized.
|
|
57
|
+
4. Note any missing error handling.
|
|
58
|
+
5. Summarize findings in a comment-ready format.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Optional frontmatter flags:
|
|
62
|
+
- `disable-model-invocation: true` — hides this skill from CODA's autonomous tool selection (it won't be suggested automatically; default `false`).
|
|
63
|
+
- `user-invocable: false` — hides this skill from the slash palette and `/skills` list (default `true`).
|
|
64
|
+
|
|
65
|
+
Save it to `<project>/.coda/skills/pr-review.md` and invoke it:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
/pr-review
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Skills in the project's `.coda/skills/` folder are available to everyone on the team. Skills in `~/.coda/skills/` are personal and available in every project.
|
|
72
|
+
|
|
73
|
+
To browse, enable, disable, or install skills, use the skills manager from inside CODA:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
/skills
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The manager lists every skill and its enabled state, and lets you enable or disable individual skills (per-session disables are stored under `~/.coda/sessions/<sessionId>/`). You can also install a skill straight from GitHub with `/skills add <repo-url> [project|global]` — choose `project` to commit it with the repo or `global` for your personal library. For private repos or to avoid rate limits, set `GITHUB_TOKEN` (or `GH_TOKEN`) so the GitHub API fallback can authenticate.
|
|
80
|
+
|
|
81
|
+
## Automate with extensions
|
|
82
|
+
|
|
83
|
+
Extensions are TypeScript modules that can register custom **tools**, **slash commands**, **lifecycle hooks** (e.g. `session_start`, `tool_execution_end`), custom model providers, keyboard shortcuts, CLI flags, and custom message renderers — using the full `ExtensionAPI`. Use them when you need CODA to integrate with an internal system that doesn't have an MCP server, or to automate a complex workflow that doesn't fit in a skill.
|
|
84
|
+
|
|
85
|
+
Extensions are auto-discovered from `~/.coda/extensions/` (user-global) and `<project>/.coda/extensions/` (project-specific). No configuration needed — just drop the file in the folder. To see which extensions are loaded and the commands they add, run `/extensions` inside CODA.
|
|
86
|
+
|
|
87
|
+
Ready to build one? The easiest way is to ask CODA — its `create-extension` skill scaffolds the extension for you. See [Writing Extensions](#extensions) for that, plus the full API reference if you want to hand-write one.
|
|
88
|
+
|
|
89
|
+
## Share packaged integrations with plugins
|
|
90
|
+
|
|
91
|
+
Plugins are versioned, installable packages — like extensions, but with a manifest, version number, and the ability to bundle skills, agents, and MCP fragments together. Use plugins when you want to share a reusable CODA integration across teams or projects.
|
|
92
|
+
|
|
93
|
+
Manage plugins from inside CODA with the `/plugin` manager — enable, disable, and browse any registered marketplace catalog. The `/plugin install` slash command accepts **only absolute local paths** to a plugin directory; for npm packages, Git URLs, or marketplace-sourced plugins, use `coda plugin install <source>` from the terminal:
|
|
94
|
+
|
|
95
|
+
```text
|
|
96
|
+
/plugin
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
You can also install from your terminal:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
coda plugin install <source> [--name <folder>] [--scope global|project]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`<source>` can be an npm package (prefix `npm:`), a Git/HTTPS URL, a local directory path, a `.zip` archive, or a `file://…` URL. `--name` selects a subdirectory (useful for monorepo git sources); `--scope` chooses `global` (default) or `project` install scope.
|
|
106
|
+
|
|
107
|
+
### Adding a marketplace
|
|
108
|
+
|
|
109
|
+
A marketplace is a catalog of plugins. Add one from the terminal with `coda marketplace install <source>`, where `<source>` can be:
|
|
110
|
+
|
|
111
|
+
- a **Git remote** (`https://…/owner/repo`, an `git@host:owner/repo` SSH URL, or a GitHub `/blob/` link) — CODA shallow-clones it, so enterprise GitHub/GHES works too;
|
|
112
|
+
- a **direct catalog URL** (`https://…/marketplace.json`, including `raw.githubusercontent.com`);
|
|
113
|
+
- a **local folder** containing a `marketplace.json` (Claude-style `.claude-plugin/` or `.coda-plugin/` layouts are recognized);
|
|
114
|
+
- a **local `.zip`** archive — CODA unpacks it and finds the catalog inside, including the single nested top-level folder you get from a GitHub "Download ZIP" / "Source code" archive.
|
|
115
|
+
|
|
116
|
+
CODA is compatible with the Claude Code plugin and marketplace ecosystem, so catalogs published for Claude Code work here.
|
|
117
|
+
|
|
118
|
+
## Orchestrate multiple agents with workflows
|
|
119
|
+
|
|
120
|
+
When a job needs more than a single agent — a repo-wide audit, reviewing every file in a changeset, or any sweep that runs the same treatment over many items — CODA can run a **workflow**: a script that orchestrates multiple agents in parallel, in pipelines, or in loops. Ask CODA to build one (it delegates to the built-in `create-workflow` agent), then run it in the background and watch it from the `/workflows` dashboard. See [Workflows](#workflows) for the full picture.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Understand a Codebase
|
|
2
|
+
|
|
3
|
+
Whether you're onboarding to a new repo or diving into a part of your own codebase you haven't touched in months, CODA can get you oriented fast. This guide shows you how to use CODA as an exploration tool — before writing a single line of code.
|
|
4
|
+
|
|
5
|
+
## Before you start
|
|
6
|
+
|
|
7
|
+
Launch CODA from the project root and let it explore freely. Don't give it tasks yet — ask it questions. The more context it builds up, the better its answers get.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cd /path/to/project
|
|
11
|
+
coda
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Get oriented quickly
|
|
15
|
+
|
|
16
|
+
Start with the big picture before zooming in on specifics.
|
|
17
|
+
|
|
18
|
+
**Understand the overall structure**
|
|
19
|
+
|
|
20
|
+
```text
|
|
21
|
+
What is the main entry point of this project and how is it structured?
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Map the key flows**
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
Trace the full request lifecycle from an incoming HTTP request to the database and back. Which files are involved?
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Understand how a specific feature works**
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
How does authentication work in this project? Walk me through the full flow.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Dig into specifics
|
|
37
|
+
|
|
38
|
+
Once you have the big picture, use CODA to go deeper on the areas you care about.
|
|
39
|
+
|
|
40
|
+
**Understand a module before changing it**
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
Before I touch the billing module, explain how it works. What are its dependencies? What would break if I changed the calculate_invoice function?
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Find where something is implemented**
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Where is the rate limiting logic implemented? Is it in middleware or inside the controllers?
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Understand a bug before fixing it**
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Users are reporting that their session expires too quickly. Without making any changes, trace the session timeout logic and tell me where the problem might be.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Plan before editing
|
|
59
|
+
|
|
60
|
+
One of the best uses of CODA's exploration mode is planning a change before you make it. Ask CODA to map the impact of a change so you don't miss anything.
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
I want to add soft-delete support to the User model. Without making any changes, list every file I would need to touch and explain why each one is affected.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
What's the minimal set of changes I'd need to make to support multi-tenancy in this project?
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Tips for better exploration
|
|
71
|
+
|
|
72
|
+
- **Be specific about what you want to know.** "How does auth work?" is fine, but "How does the OAuth refresh token flow work specifically?" gets you a better answer.
|
|
73
|
+
- **Ask follow-up questions.** CODA builds context as the session progresses. If the first answer is too high-level, ask it to go deeper on the part that matters.
|
|
74
|
+
- **Don't let it make changes during exploration.** If CODA offers to fix something while explaining it, say "just explain for now, don't change anything."
|
|
75
|
+
- **Delegate broad exploration on large repos.** Instead of flooding your main session, ask naturally for a broad exploration — for example: *"Map how billing connects to the payment provider and report back a summary; don't edit anything."* CODA can decide to delegate that work to the built-in `explore` agent and bring the summary back to your main session. See [Agents](#agents) for more on delegated work.
|
|
76
|
+
|
|
77
|
+
## Ask for a diagram or a written map
|
|
78
|
+
|
|
79
|
+
Exploration output doesn't have to be prose. Ask CODA to render what it finds in a form you can keep:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
Draw a Mermaid sequence diagram of the checkout flow, from "Add to cart" to "Order confirmed".
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
Write a short ARCHITECTURE.md describing the top-level modules and how they depend on each other.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Pinning the result to a file (a diagram, a module map, an onboarding note) turns a one-off exploration into something the whole team can reuse.
|
|
90
|
+
|
|
91
|
+
## See also
|
|
92
|
+
|
|
93
|
+
- [Make Changes Safely](#guide-changes) — once you understand the code, change it without surprises.
|
|
94
|
+
- [Agents](#agents) — delegate a deep exploration to the built-in `explore` agent.
|
|
95
|
+
- [How CODA Works](#how-it-works) — why live file reads make answers accurate.
|