@globant/coda-windows-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.exe +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/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.exe +0 -0
- package/package.json +20 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# How CODA Works
|
|
2
|
+
|
|
3
|
+
Understanding what CODA does under the hood helps you use it more effectively — and troubleshoot it when it behaves unexpectedly.
|
|
4
|
+
|
|
5
|
+
## Tools: what CODA can do
|
|
6
|
+
|
|
7
|
+
CODA doesn't just generate text. It has tools it can call to actually interact with your system:
|
|
8
|
+
|
|
9
|
+
| Tool | What it does |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| File read/write | Read any file in your project; write or patch files to make changes |
|
|
12
|
+
| Shell | Run shell commands — tests, linters, build scripts, git operations |
|
|
13
|
+
| Search | Search for patterns across your codebase, faster than reading every file |
|
|
14
|
+
| MCP tools | Tools exposed by connected MCP servers (GitHub, databases, internal APIs) |
|
|
15
|
+
| Skills | Invoke a skill you or your team has defined |
|
|
16
|
+
| Sub-agents | Delegate a subtask to another CODA instance running in parallel |
|
|
17
|
+
|
|
18
|
+
CODA picks which tools to use automatically based on the task. You don't need to tell it "use the search tool now" — it figures that out. For the full list of built-in tools and what you can configure about each, see [Tools Reference](#tools-reference).
|
|
19
|
+
|
|
20
|
+
## The agent loop
|
|
21
|
+
|
|
22
|
+
Each turn runs a loop: CODA reads your message, decides on the next action, calls one or more tools, observes the results, and repeats — until the task is done or it needs your input. A few properties of this loop are worth knowing:
|
|
23
|
+
|
|
24
|
+
- **It pauses for approval** before risky actions (shell commands above your level, overwriting an unread file). See [Permissions & Approvals](#permissions).
|
|
25
|
+
- **It has a step budget.** A single turn is capped at a maximum number of loop steps (`maxSteps`, default 300) so a runaway turn can't loop forever. You'll rarely hit this in normal use.
|
|
26
|
+
- **You can interrupt it.** Press **Esc** to stop the loop mid-turn and redirect.
|
|
27
|
+
- **It can delegate.** For big or parallelizable work, the loop can spawn child [agents](#agents) or a [workflow](#workflows) instead of doing everything inline.
|
|
28
|
+
|
|
29
|
+
## Memory: what CODA knows
|
|
30
|
+
|
|
31
|
+
CODA draws on a few different kinds of memory:
|
|
32
|
+
|
|
33
|
+
**In-session context** — everything you've said and everything CODA has read or done in the current session. This builds up as the session progresses, which is why later turns in a session are often better than earlier ones — CODA has more context.
|
|
34
|
+
|
|
35
|
+
**AGENTS.md (instructions you give)** — project-specific instructions injected at the start of every session. This is how *you* tell CODA about your project's conventions, quality gates, and constraints.
|
|
36
|
+
|
|
37
|
+
**MEMORY.md (facts CODA learns)** — durable notes the agent keeps across sessions: your preferences, decisions, and project gotchas. Unlike AGENTS.md, CODA writes this one itself as it learns. It even survives checkpoint rollbacks — restoring an earlier point never erases what CODA has remembered.
|
|
38
|
+
|
|
39
|
+
**The file system** — CODA always reads your actual files live from disk, not from a cached index. So it works with what's currently there, not a stale snapshot.
|
|
40
|
+
|
|
41
|
+
The two files you control directly play different roles:
|
|
42
|
+
|
|
43
|
+
| | `AGENTS.md` | `MEMORY.md` |
|
|
44
|
+
| --- | --- | --- |
|
|
45
|
+
| **Who writes it** | You (or `/init`) | CODA, as it learns |
|
|
46
|
+
| **What goes in it** | Project conventions, quality gates, no-go zones | Preferences, decisions, gotchas |
|
|
47
|
+
| **Scope** | The project where it lives | Global (`~/.coda/`) and per-project |
|
|
48
|
+
| **Survives rollback?** | It's your file — yes | Yes, excluded from checkpoints on purpose |
|
|
49
|
+
| **Commit to Git?** | Yes — share with the team | Usually no — it's agent scratch memory |
|
|
50
|
+
|
|
51
|
+
## Compaction: keeping context fresh
|
|
52
|
+
|
|
53
|
+
Long sessions accumulate a lot of history. Once the conversation reaches a certain size, CODA automatically condenses older messages into a summary (compaction) while keeping recent messages verbatim. This keeps the session running smoothly without losing important context.
|
|
54
|
+
|
|
55
|
+
You can also trigger compaction manually before switching topics:
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
/compact
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
If you'd rather control when this happens — for example while debugging a problem where CODA seems to "forget" something — open `/settings` → **Context Compaction** to disable automatic compaction or adjust when it kicks in. See [Configuration](#configuration) for details.
|
|
62
|
+
|
|
63
|
+
## Error recovery: handling provider hiccups
|
|
64
|
+
|
|
65
|
+
Model calls don't always succeed — providers rate-limit, time out, or return transient errors. CODA recovers automatically instead of just failing the turn:
|
|
66
|
+
|
|
67
|
+
- **Classifies the failure** from the provider's signals (rate limit, transient service error, auth, content policy, context-length, quota).
|
|
68
|
+
- **Retries with guidance** when the model can fix it — for example, telling it exactly which tool arguments were wrong — and **backs off with jitter** (honoring any `Retry-After`) within a bounded per-turn budget.
|
|
69
|
+
- **Continues a truncated answer** that hit the output-length cap, resuming where it stopped.
|
|
70
|
+
- **Fails over** to your configured `fallback` model when a provider keeps failing, with a circuit breaker so it stops hammering a service that's down.
|
|
71
|
+
- **Escalates immediately** for problems retrying can't fix — auth failures, content-policy blocks, hard quota/billing limits, and model-unavailable errors (when the model has been removed or renamed on the provider) — surfacing a clear classified message.
|
|
72
|
+
|
|
73
|
+
In the TUI you'll see a live row like `↻ Backing off… / Failing over… / Continuing…` while this happens. You can tune how aggressively CODA retries with `errorHandling.posture` (`conservative` / `balanced` / `aggressive`) and set `fallback.enabled: true` along with `fallback.provider` (and optionally `fallback.model`) to opt in to failover — see [Configuration Reference](#config-reference).
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# CODA User Guide
|
|
2
|
+
|
|
3
|
+
**CODA** (`coda`) is Globant's AI coding agent. You describe what you want in plain language; CODA reads your codebase, plans the work, makes changes, and runs commands — while you stay in control of every step.
|
|
4
|
+
|
|
5
|
+
This guide is the authoritative reference for using CODA. Every page is a Markdown file under `~/.coda/docs/`, synced from the version of CODA you have installed. Cross-links use `#page-name` anchors that map directly to the file of the same name (for example, `#config-reference` → `config-reference.md`).
|
|
6
|
+
|
|
7
|
+
## Where to start
|
|
8
|
+
|
|
9
|
+
If you are brand new, read these in order:
|
|
10
|
+
|
|
11
|
+
1. [What is CODA?](#overview) — the big picture and what you can do with it.
|
|
12
|
+
2. [Installation](#installation) — get `coda` running on your machine.
|
|
13
|
+
3. [Connect a Provider](#connect-provider) — choose Glob.AI OS (recommended for Globant employees) or a custom OpenAI-compatible / Ollama endpoint, and authenticate.
|
|
14
|
+
4. [Quick Start](#quickstart) — open CODA in a real project and run your first prompt.
|
|
15
|
+
|
|
16
|
+
## Table of contents
|
|
17
|
+
|
|
18
|
+
### Getting started
|
|
19
|
+
|
|
20
|
+
- [What is CODA?](#overview) — overview, the two run modes, and what a session looks like.
|
|
21
|
+
- [Installation](#installation) — requirements, install script vs npm, and upgrading.
|
|
22
|
+
- [Connect a Provider](#connect-provider) — the first-run setup wizard, OAuth vs API key, custom providers.
|
|
23
|
+
- [Quick Start](#quickstart) — your first session in under five minutes.
|
|
24
|
+
- [How CODA Works](#how-it-works) — tools, memory, and compaction under the hood.
|
|
25
|
+
|
|
26
|
+
### Everyday use
|
|
27
|
+
|
|
28
|
+
- [Interactive vs Headless](#cli-vs-batch) — when to use the TUI and when to use batch mode.
|
|
29
|
+
- [Commands & Flags](#cli-reference) — every slash command and shell flag.
|
|
30
|
+
- [Keyboard Shortcuts](#shortcuts) — TUI key bindings.
|
|
31
|
+
- [Tools Reference](#tools-reference) — the built-in tools the agent can call.
|
|
32
|
+
- [Permissions & Approvals](#permissions) — the human-in-the-loop model and bash approval levels.
|
|
33
|
+
- [Sessions & Checkpoints](#sessions) — resuming work and undoing changes.
|
|
34
|
+
|
|
35
|
+
### Task guides
|
|
36
|
+
|
|
37
|
+
- [Understand a Codebase](#guide-understand) — exploration prompts and tips.
|
|
38
|
+
- [Make Changes Safely](#guide-changes) — checkpoints, approvals, and undo workflows.
|
|
39
|
+
- [Collaborate with Your Team](#guide-collaborate) — `AGENTS.md`, shared skills, and what to commit.
|
|
40
|
+
- [Automate with Batch Mode](#guide-automate) — scripting and CI.
|
|
41
|
+
|
|
42
|
+
### Extending CODA
|
|
43
|
+
|
|
44
|
+
- [Extend CODA](#guide-extend) — the high-level map of MCP, skills, extensions, plugins, and workflows.
|
|
45
|
+
- [Agents](#agents) — delegate a task to a child CODA session.
|
|
46
|
+
- [Workflows](#workflows) — orchestrate many agents at once.
|
|
47
|
+
- [Writing Extensions](#extensions) — the extension API reference.
|
|
48
|
+
- [Lifecycle Hooks](#hooks) — shell/HTTP hooks that fire at session, tool, and prompt events.
|
|
49
|
+
|
|
50
|
+
### Operations & reference
|
|
51
|
+
|
|
52
|
+
- [Configuration](#configuration) — how settings cascade and where they live.
|
|
53
|
+
- [Configuration Reference](#config-reference) — config keys, defaults, and environment variables.
|
|
54
|
+
- [config.json — A Complete Example](#config-json) — a full, annotated `config.json` you can copy from.
|
|
55
|
+
- [View & Share Logs](#logging) — `coda logs`, redaction, and support bundles.
|
|
56
|
+
- [FAQ](#faq) — short answers to common questions.
|
|
57
|
+
- [Glossary](#glossary) — definitions for the terms used throughout.
|
|
58
|
+
- [Release History](#release-history) — notable changes by version.
|
|
59
|
+
|
|
60
|
+
## A note on safety
|
|
61
|
+
|
|
62
|
+
CODA is built to be safe on real codebases. It asks before doing anything risky (see [Permissions & Approvals](#permissions)), snapshots your files before every turn so you can roll back (see [Sessions & Checkpoints](#sessions)), and never touches your project's own Git history. If you only remember one thing: when CODA heads the wrong way, press **Esc** to interrupt, then redirect — that is faster than undoing a pile of changes.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Installation
|
|
2
|
+
|
|
3
|
+
## Requirements
|
|
4
|
+
|
|
5
|
+
- **Git 2.5.0 or newer** — CODA uses Git under the hood for checkpoints. Run `git --version` to check.
|
|
6
|
+
- **A supported terminal** — any modern terminal on macOS, Linux, or Windows works.
|
|
7
|
+
- **Provider credentials** — OAuth access **(recommended)** or a Glob.AI OS API key. You'll set this up during first launch.
|
|
8
|
+
- **Node.js (which includes npm)** — only if you install via npm (a current LTS release is recommended). The install script below needs neither.
|
|
9
|
+
|
|
10
|
+
## Install CODA
|
|
11
|
+
|
|
12
|
+
The recommended way to install CODA is the install script — it has **no dependencies** (it just runs the commands below), so everyone can use it.
|
|
13
|
+
|
|
14
|
+
**macOS & Linux**
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
curl -fsSL https://docs.globant.ai/en/filedownload?4622,12 | bash
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Windows (PowerShell 7)**
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
irm 'https://docs.globant.ai/en/filedownload?5346,6' | iex
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Alternatively, you can install via **npm**. Note this requires Node.js, whereas the install script above does not:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm i -g @globant/coda
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Once installed, confirm it's working:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
coda --version
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
You should see a version string like `1.2.3`. If you see a "command not found" error, something went wrong with the install path — check the [FAQ](#faq).
|
|
39
|
+
|
|
40
|
+
## Where CODA installs
|
|
41
|
+
|
|
42
|
+
Knowing the layout helps when you troubleshoot:
|
|
43
|
+
|
|
44
|
+
- **The install script** places a native binary under `~/.coda/bin/` and ensures that directory is on your `PATH` (it appends a line to your shell profile, e.g. `~/.zshrc` or `~/.bashrc`).
|
|
45
|
+
- **npm** installs the `coda` command into your global npm bin directory (run `npm prefix -g` and look under the resulting path's `bin/` subdirectory to see where that is).
|
|
46
|
+
- Either way, your config, credentials, sessions, logs, and checkpoints live under `~/.coda/` (override the location with the `CODA_HOME` environment variable or the `--coda-home <path>` CLI flag — see [Configuration Reference](#config-reference)).
|
|
47
|
+
|
|
48
|
+
## Keeping CODA up to date
|
|
49
|
+
|
|
50
|
+
To upgrade later, run `coda upgrade` from your terminal, or `/upgrade` from inside the TUI. CODA picks the right mechanism automatically based on how you installed it:
|
|
51
|
+
|
|
52
|
+
- **Installed via npm** → it upgrades through npm.
|
|
53
|
+
- **Installed via the script** → it swaps in the latest native binary under `~/.coda/bin`.
|
|
54
|
+
|
|
55
|
+
You can see what changed between versions in [Release History](#release-history).
|
|
56
|
+
|
|
57
|
+
## Troubleshooting the install
|
|
58
|
+
|
|
59
|
+
**`coda: command not found`** — the install directory isn't on your `PATH` yet. Open a new terminal (so it re-reads your shell profile), or add `~/.coda/bin` to your `PATH` manually. For npm installs, confirm your global npm bin directory is on `PATH`.
|
|
60
|
+
|
|
61
|
+
**The script install fails behind a proxy or strict firewall** — the script downloads a binary over HTTPS. If your network blocks it, use the npm install instead (`npm i -g @globant/coda`), which goes through your configured npm registry. Alternatively, set the `CODA_NPM_REGISTRY` environment variable to point `coda upgrade` at an internal registry mirror — this works with the native binary install and does not require Node.js.
|
|
62
|
+
|
|
63
|
+
**Permission errors with npm** — a global npm install may need elevated permissions, or a per-user npm prefix. Prefer the install script if you'd rather avoid Node.js and npm entirely.
|
|
64
|
+
|
|
65
|
+
**Checkpoints say they're disabled at startup** — that's a Git version issue, not an install problem. Checkpoints need **Git 2.5.0+**; see [Sessions & Checkpoints](#sessions).
|
|
66
|
+
|
|
67
|
+
If a problem isn't covered here, check the [FAQ](#faq).
|
|
68
|
+
|
|
69
|
+
## What's next
|
|
70
|
+
|
|
71
|
+
With CODA installed, the next step is to [Connect a Provider](#connect-provider) — pick your Glob.AI OS environment and sign in with OAuth or an API key. Then head to [Quick Start](#quickstart) to open CODA in a real project and run your first prompt.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# View & Share Logs
|
|
2
|
+
|
|
3
|
+
CODA writes structured logs to disk so you can troubleshoot what happened in a session — and share a safe, redacted bundle with support when you need help. Secrets are scrubbed *before* anything is written, so logs are safe to read and share.
|
|
4
|
+
|
|
5
|
+
## What you get
|
|
6
|
+
|
|
7
|
+
- **`coda logs`** — a full-screen log viewer in your terminal, or a plain text / JSON stream when piped.
|
|
8
|
+
- **Filtering** by level, service, and time, plus a live `--follow` tail.
|
|
9
|
+
- **Secret redaction at the source** — tokens, keys, passwords, email addresses, and `Bearer`/`sk-`/`ghp_`-style values never reach disk.
|
|
10
|
+
- **`coda logs export`** — a local, redacted, path-scrubbed bundle for support (nothing is ever uploaded).
|
|
11
|
+
- **Per-service log levels** so you can turn up detail only where you need it.
|
|
12
|
+
- **`coda logs-demo`** — a few-second self-test of the whole logging pipeline.
|
|
13
|
+
|
|
14
|
+
## Viewing logs
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
coda logs # interactive viewer (in a terminal)
|
|
18
|
+
coda logs | less # plain text stream (when piped)
|
|
19
|
+
coda logs --json # raw JSON lines
|
|
20
|
+
coda logs --follow # tail new entries live
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
In an interactive terminal, `coda logs` opens a full-screen viewer with aligned `TIME LEVEL SERVICE MESSAGE` columns. Only `warn` and `error` rows are colored, so problems stand out.
|
|
24
|
+
|
|
25
|
+
| Key | Action |
|
|
26
|
+
| --- | --- |
|
|
27
|
+
| **↑ / ↓** or **j / k** | Move the selection |
|
|
28
|
+
| **PageUp / PageDown** | Jump by a page |
|
|
29
|
+
| **g / G** | Jump to the oldest / newest entry |
|
|
30
|
+
| **Space / Enter** | Expand the selected row's full record (every field and stack trace) |
|
|
31
|
+
| **c** or **Ctrl+C** | Copy the selected entry's JSON to the clipboard |
|
|
32
|
+
| **q / Esc** | Quit |
|
|
33
|
+
|
|
34
|
+
When piped or non-interactive, the same window streams as one entry per line (or `--json` for raw lines, `--plain` to disable color), so `grep` and `less` work as usual.
|
|
35
|
+
|
|
36
|
+
## Filtering
|
|
37
|
+
|
|
38
|
+
All filters work in both the viewer and the stream:
|
|
39
|
+
|
|
40
|
+
| Flag | What it does |
|
|
41
|
+
| --- | --- |
|
|
42
|
+
| `--level <name>` | Minimum severity: `trace`, `debug`, `info`, `warn`, `error`, `fatal` |
|
|
43
|
+
| `--service <prefix>` | Only entries whose service starts with the prefix (e.g. `core.agent`, `core.tools`) |
|
|
44
|
+
| `--since <when>` | Only newer than `30s`, `30m`, `2h`, `1d`, or an ISO-8601 timestamp |
|
|
45
|
+
| `--lines <N>` (`-n`) | Window size (default 2000) |
|
|
46
|
+
| `--follow` (`-f`) | Keep streaming new entries (Ctrl-C to stop) |
|
|
47
|
+
|
|
48
|
+
## Where logs live
|
|
49
|
+
|
|
50
|
+
Logs are stored under `~/.coda/logs/` (relocatable with `CODA_HOME`). The live file is `coda.log`; on rotation it shifts to a numbered file (`coda.log.1` … `coda.log.7`). Logs rotate **daily and at 50 MB**, keeping the **7 most recent** files. `coda logs` reads across all of them automatically, newest first. Each line is one JSON object: an ISO-8601 `time`, a `level`, the `service` name, the `msg`, and any structured fields.
|
|
51
|
+
|
|
52
|
+
## Secrets never hit disk
|
|
53
|
+
|
|
54
|
+
Every entry is scrubbed as it's written:
|
|
55
|
+
|
|
56
|
+
- **Secret-looking keys** (`authorization`, `token`, `apiKey`, `secret`, `password`, `cookie`, `username`, `email`, …) have their value replaced with `[REDACTED]`.
|
|
57
|
+
- **Secret-looking values** anywhere in a string (`Bearer …`, `sk-…`, `ghp_` / `gho_` / `ghs_` / `ghr_` / `ghu_` / `github_pat_…`, `AKIA…`, JWTs, private-key blocks, and email addresses) are scrubbed — even inside a longer message like a shell command.
|
|
58
|
+
- Counters like token usage are kept; only *string* secrets are masked.
|
|
59
|
+
|
|
60
|
+
Built-in redaction is always on and can't be disabled. To **add** rules (extra deny-keys, key substrings, or value patterns), set `logging.redact` in your config — they merge on top of the built-ins.
|
|
61
|
+
|
|
62
|
+
## Log levels
|
|
63
|
+
|
|
64
|
+
You can control per-service detail two ways. The `LOG_LEVEL` environment variable wins over config for the same service.
|
|
65
|
+
|
|
66
|
+
- **Persistent** — in your config: `logging.level` (global default) and `logging.levels` (per service).
|
|
67
|
+
- **Ad-hoc** — the `LOG_LEVEL` env var (Rust-style; a bare token sets the global floor):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
LOG_LEVEL=info,core.agent.step:debug,core.tools:warn coda
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
By default, `info` carries lifecycle events (a turn starting and finishing); per-operation detail (each agent step, tool call, and file op) is `debug`. A per-service entry always beats the global default.
|
|
74
|
+
|
|
75
|
+
## The viewer gate
|
|
76
|
+
|
|
77
|
+
Raw log viewing is controlled by `logging.rawViewer.enabled`. Left unset, it defaults **on during development and off in a shipped release build**. When it's off, `coda logs` declines and points you at the export below (which is never gated). Redaction protects secrets either way — the gate just keeps raw logs from being browsed casually in a release.
|
|
78
|
+
|
|
79
|
+
## Sharing logs with support
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
coda logs export [--since … | --lines … | --keep-paths]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This writes a **local, redacted** bundle to `~/.coda/exports/` and prints the path — **nothing is uploaded**. Each entry is redacted a second time (also catching logs written by an older version), and absolute paths are rewritten so your username and home directory don't leak (`--keep-paths` opts out). The bundle records the CODA version, OS/arch, and session/turn ids — no identity. Review the file, then share it.
|
|
86
|
+
|
|
87
|
+
## Self-test
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
coda logs-demo
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Runs the whole pipeline end to end (build redacted entries → read → render → filter → export) against a throwaway directory and prints **PASS** / **FAIL** in a few seconds — a quick way to confirm logging works after an install or upgrade.
|
|
94
|
+
|
|
95
|
+
## Troubleshooting with logs
|
|
96
|
+
|
|
97
|
+
A few recipes for common situations:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# What just went wrong? Tail errors live while you reproduce it.
|
|
101
|
+
coda logs --level error --follow
|
|
102
|
+
|
|
103
|
+
# Zoom in on the agent loop for the last 15 minutes.
|
|
104
|
+
coda logs --service core.agent --since 15m
|
|
105
|
+
|
|
106
|
+
# Turn up detail for one subsystem without flooding everything else.
|
|
107
|
+
LOG_LEVEL=info,core.tools:debug coda
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
When you can't tell what happened from the rendered view, press **Space**/**Enter** on a row to expand its full JSON record — including any stack trace and structured fields.
|
|
111
|
+
|
|
112
|
+
## Sending a bundle to support — checklist
|
|
113
|
+
|
|
114
|
+
1. Reproduce the issue so it's fresh in the logs.
|
|
115
|
+
2. Run `coda logs export` (optionally `--since 30m` to scope it).
|
|
116
|
+
3. Open the printed file from `~/.coda/exports/` and skim it — redaction is automatic, but a glance confirms it.
|
|
117
|
+
4. Attach it. Nothing was uploaded; the bundle only contains what you choose to share.
|
|
118
|
+
|
|
119
|
+
## See also
|
|
120
|
+
|
|
121
|
+
- [Commands & Flags](#cli-reference) — the full command and flag reference.
|
|
122
|
+
- [Configuration](#configuration) — where the `logging.*` settings live.
|
|
123
|
+
- [Configuration Reference](#config-reference) — the `logging.*` keys and `LOG_LEVEL` syntax.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# What is CODA?
|
|
2
|
+
|
|
3
|
+
**CODA** (`coda`) is Globant's AI coding agent. You describe what you want to accomplish in plain language — CODA reads your codebase, figures out what needs to change, and gets it done, while you stay in control of every step.
|
|
4
|
+
|
|
5
|
+
Unlike a chat window that only suggests code, CODA is an *agent*: it can read and write files, run shell commands, search your repository, call connected services, and delegate subtasks — all in your actual working directory, with your approval where it matters.
|
|
6
|
+
|
|
7
|
+
## What you can do with CODA
|
|
8
|
+
|
|
9
|
+
**Explore an unfamiliar codebase** — ask CODA to explain how authentication works, trace where a bug might be coming from, or map out the dependencies of a module before you touch anything. Because CODA reads your files live from disk, it answers from the real state of the repo, not a stale index. See [Understand a Codebase](#guide-understand).
|
|
10
|
+
|
|
11
|
+
**Make changes with a safety net** — CODA snapshots your files before every turn (checkpoints). If something goes wrong, you can roll back to any previous state with a single command, and your project's own Git history is never touched. See [Make Changes Safely](#guide-changes) and [Sessions & Checkpoints](#sessions).
|
|
12
|
+
|
|
13
|
+
**Automate repetitive work** — run CODA headlessly in scripts and CI pipelines. Feed it a prompt, let it work, and check the result — no terminal UI needed. See [Automate with Batch Mode](#guide-automate).
|
|
14
|
+
|
|
15
|
+
**Extend it for your team** — connect MCP servers, write custom skills, create shared `AGENTS.md` files, package integrations as plugins, and drop TypeScript *extensions* into `.coda/extensions/` to register custom tools, slash commands, and lifecycle hooks — so every developer on the project works with the same conventions baked in. See [Extend CODA](#guide-extend) and [Collaborate with Your Team](#guide-collaborate).
|
|
16
|
+
|
|
17
|
+
**Scale up with delegation** — when a job is bigger than a single conversation, CODA can spin up [agents](#agents) (child sessions that work in parallel) or run [workflows](#workflows) that orchestrate many agents in fan-out, pipelines, and loops.
|
|
18
|
+
|
|
19
|
+
## How a session looks
|
|
20
|
+
|
|
21
|
+
A session is a back-and-forth loop. You set the goal; CODA does the work and checks in with you at the points that matter.
|
|
22
|
+
|
|
23
|
+
| You | CODA |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| Describe the goal in plain language | Reads files, plans the approach |
|
|
26
|
+
| Review what it's about to do | Edits files, runs shell commands |
|
|
27
|
+
| Approve, adjust, or undo | Saves checkpoints so nothing is permanently lost |
|
|
28
|
+
|
|
29
|
+
In practice, a turn looks like this: you send a message, CODA snapshots your files, then it reasons, calls tools (reading, searching, editing, running commands), pausing to ask for approval before anything risky, and finally summarizes what it did. You can interrupt at any time with **Esc** and redirect.
|
|
30
|
+
|
|
31
|
+
The longer a session runs, the more context CODA accumulates — which is why later turns are often sharper than the first. When the conversation grows large, CODA condenses older history automatically (compaction) so it keeps running smoothly. See [How CODA Works](#how-it-works).
|
|
32
|
+
|
|
33
|
+
## Two ways to run it
|
|
34
|
+
|
|
35
|
+
**Interactive (TUI)** — a full-screen terminal UI. Type prompts, review tool output, approve commands, switch models, and navigate your session history in real time. This is how you'll use CODA day-to-day.
|
|
36
|
+
|
|
37
|
+
**Headless (Batch)** — a single command, no UI. Give CODA a prompt from the shell, it runs, and exits with a status code. Use this in scripts, CI pipelines, and automation.
|
|
38
|
+
|
|
39
|
+
**Editor (ACP)** — start CODA with `--acp` to expose it over stdio as an Agent Communication Protocol server, used by IDE plugins (Zed, JetBrains) to drive CODA from inside your editor.
|
|
40
|
+
|
|
41
|
+
Both share the same agent, the same configuration, and the same tools — the difference is the interface and a few safety defaults (headless runs are more autonomous because there is no one to answer an approval prompt). See [Interactive vs Headless](#cli-vs-batch) for a side-by-side comparison.
|
|
42
|
+
|
|
43
|
+
## What stays in your control
|
|
44
|
+
|
|
45
|
+
- **Approvals** — CODA asks before running risky shell commands or overwriting files it hasn't read. You tune how often it asks. See [Permissions & Approvals](#permissions).
|
|
46
|
+
- **Undo** — every turn is checkpointed; restore any point from the `/timeline` picker.
|
|
47
|
+
- **Secrets** — API keys live in `~/.coda/.secrets`, never committed to Git, and are scrubbed from logs before they hit disk. See [Configuration](#configuration) and [View & Share Logs](#logging).
|
|
48
|
+
- **Your Git history** — checkpoints use a separate private shadow repository, so `git log`, branches, and commits are entirely yours.
|
|
49
|
+
|
|
50
|
+
## When to reach for CODA (and when not to)
|
|
51
|
+
|
|
52
|
+
CODA shines when a task touches **real files in a real repository** and benefits from reading, searching, editing, and running commands in a loop:
|
|
53
|
+
|
|
54
|
+
- Onboarding to an unfamiliar codebase and asking how things fit together.
|
|
55
|
+
- Implementing a feature or fix that spans several files, with tests run as you go.
|
|
56
|
+
- Reviewing a pull request, diagnosing a bug report, or auditing for code smells.
|
|
57
|
+
- Repetitive, scriptable chores — changelogs, doc generation, batch refactors — run headlessly in CI.
|
|
58
|
+
|
|
59
|
+
It is *not* the right tool for everything. For a one-line syntax question with no repo context, a plain chat assistant is faster. For changes you are not ready to review, prefer exploration prompts ("explain, don't change") until you trust the plan.
|
|
60
|
+
|
|
61
|
+
## The agent loop, step by step
|
|
62
|
+
|
|
63
|
+
Every turn follows the same shape. Understanding it makes CODA predictable:
|
|
64
|
+
|
|
65
|
+
1. **You send a message.** CODA snapshots your files (a checkpoint) before doing anything.
|
|
66
|
+
2. **It reasons and plans.** For non-trivial work it sketches the steps first.
|
|
67
|
+
3. **It calls tools.** Reading files, searching, editing, running shell commands — one or more at a time.
|
|
68
|
+
4. **It pauses for approval** before anything risky (a shell command above your approval level, or overwriting a file it never read). You answer with a single key.
|
|
69
|
+
5. **It summarizes** what changed and why, then hands the turn back to you.
|
|
70
|
+
|
|
71
|
+
At any point you can press **Esc** to interrupt and redirect — that is almost always faster than letting it finish and undoing the result.
|
|
72
|
+
|
|
73
|
+
## What a session accumulates
|
|
74
|
+
|
|
75
|
+
A session is more than a chat log. As it runs, CODA builds up:
|
|
76
|
+
|
|
77
|
+
- **Conversation context** — your prompts and its work so far. This is why later turns are often sharper than the first.
|
|
78
|
+
- **What it read from disk** — always the live file, never a stale cache.
|
|
79
|
+
- **`AGENTS.md` instructions** — your project's conventions, injected at the start of every session.
|
|
80
|
+
- **`MEMORY.md` facts** — durable notes CODA writes for itself and carries across sessions.
|
|
81
|
+
|
|
82
|
+
See [How CODA Works](#how-it-works) for the mechanics of tools, memory, and compaction.
|
|
83
|
+
|
|
84
|
+
## Start here
|
|
85
|
+
|
|
86
|
+
1. [Installation](#installation) — get `coda` running on your machine.
|
|
87
|
+
2. [Connect a Provider](#connect-provider) — pick your Glob.AI OS environment and sign in.
|
|
88
|
+
3. [Quick Start](#quickstart) — open CODA in a real project and run your first prompt.
|
|
89
|
+
4. [Configuration](#configuration) — connect your provider and tune settings.
|
|
90
|
+
|
|
91
|
+
New to the terminology? The [Glossary](#glossary) defines every term used across this guide.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Permissions & Approvals
|
|
2
|
+
|
|
3
|
+
CODA can read files, run shell commands, and edit your code — but it asks before doing anything risky. This human-in-the-loop (HITL) design keeps you in control: CODA proposes an action, you approve or skip it, and nothing irreversible happens behind your back.
|
|
4
|
+
|
|
5
|
+
## How approvals work
|
|
6
|
+
|
|
7
|
+
When CODA wants to do something that could change your system, it pauses and shows you exactly what it's about to do. In the interactive TUI you answer with a single key:
|
|
8
|
+
|
|
9
|
+
- **Y** — allow this action and continue.
|
|
10
|
+
- **N** — skip it; CODA carries on without running that action.
|
|
11
|
+
|
|
12
|
+
Some prompts are **questions** rather than yes/no approvals — for example when a tool needs you to pick from a numbered list or type a short answer. There you type your choice (or the number) and press **Enter**.
|
|
13
|
+
|
|
14
|
+
How often CODA stops to ask depends on your settings. The goal is to auto-approve the safe, routine things (reading files, listing directories) and pause on the things that write, delete, or reach outside your project.
|
|
15
|
+
|
|
16
|
+
## Bash approval levels
|
|
17
|
+
|
|
18
|
+
The most common approval control is the **bash approval level** — it decides how many shell commands CODA can run without asking. Set it from `/settings` → **Bash Tool Preferences**:
|
|
19
|
+
|
|
20
|
+
| Level | What it auto-approves |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| `safe` | Read-only commands only (`ls`, `cat`, `git status`) |
|
|
23
|
+
| `low` | Safe commands plus low-risk writes — **default** |
|
|
24
|
+
| `medium` | Most file operations and git commits |
|
|
25
|
+
| `high` | Everything except clearly destructive operations (`rm -rf`, disk formatting) |
|
|
26
|
+
|
|
27
|
+
Even at `high`, commands that match CODA's blocked patterns still require explicit approval. Lowering the level is the safest choice when you're working in an unfamiliar or sensitive repo.
|
|
28
|
+
|
|
29
|
+
**Which level should I pick?**
|
|
30
|
+
|
|
31
|
+
- `safe` — auditing or read-only review, or any repo you don't fully trust yet.
|
|
32
|
+
- `low` (default) — everyday development; CODA runs safe reads and low-risk writes (creating files, package installs, `git add`/`commit`) but asks before anything that moves or deletes.
|
|
33
|
+
- `medium` — you're moving fast in a repo you know and are comfortable auto-approving `mv`/`rm`, `git push`/`reset`, and permission changes.
|
|
34
|
+
- `high` — trusted, recoverable environments where you want minimal interruptions; still stops on clearly destructive commands.
|
|
35
|
+
|
|
36
|
+
**What is never auto-approved.** Regardless of level, commands matching CODA's blocked patterns — things like `rm -rf /`, disk formatting, or piping a remote script straight into a shell — always require an explicit **Y**. The approval level controls the *gray area*; the hard-block list is not negotiable by config.
|
|
37
|
+
|
|
38
|
+
## Choosing the shell
|
|
39
|
+
|
|
40
|
+
CODA runs bash commands through a shell you can pick from the same `/settings` → **Bash Tool Preferences** screen. The **shell mode** can be `auto` (let CODA detect the best option), or you can pin it to `bash`, `powershell`, or `wsl` — handy on Windows where the default isn't always what you want.
|
|
41
|
+
|
|
42
|
+
## Other actions that ask first
|
|
43
|
+
|
|
44
|
+
Bash isn't the only thing gated by approvals. CODA also pauses before:
|
|
45
|
+
|
|
46
|
+
- **Overwriting a file it never read this session** — an anti-clobber guard. If CODA didn't read a file before writing to it, it asks first so it can't silently clobber work it hasn't seen.
|
|
47
|
+
- **Consolidating memory** — when CODA rewrites its `MEMORY.md` notes, it asks before replacing them.
|
|
48
|
+
- **MCP and other tools** — external tools you've connected may run their own approval logic; CODA always routes them through your MCP configuration.
|
|
49
|
+
|
|
50
|
+
## Approvals in headless (batch) mode
|
|
51
|
+
|
|
52
|
+
Headless runs can't show you a prompt, so the rules are stricter and more autonomous by design:
|
|
53
|
+
|
|
54
|
+
- The **`ask_user`** tool isn't available — there's no one to answer.
|
|
55
|
+
- Bash defaults to a higher auto-approval tier so scripts don't hang waiting on input.
|
|
56
|
+
|
|
57
|
+
You control this from the command line when you launch a batch run:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Set the bash approval level for this run
|
|
61
|
+
coda -p "Run the test suite and report failures" --bash-security high
|
|
62
|
+
|
|
63
|
+
# Auto-approve everything for a fully unattended run (this is the default when --auto-approve is omitted)
|
|
64
|
+
coda -p "Format the codebase" --auto-approve all
|
|
65
|
+
|
|
66
|
+
# Block all HITL requests — run fails immediately if any approval is needed
|
|
67
|
+
coda -p "Run the test suite and report failures" --auto-approve none
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
When `--auto-approve` is omitted, headless runs default to `all`, meaning every HITL request is auto-approved. Pass `--auto-approve none` to do the opposite: any pending approval request immediately aborts the run with an error — useful for CI pipelines where silent auto-approval is unacceptable.
|
|
71
|
+
|
|
72
|
+
Use a high auto-approval tier only when you trust the prompt and the repo — an unattended run with `--auto-approve all` will not stop to ask, even for destructive commands.
|
|
73
|
+
|
|
74
|
+
## Trust and external code
|
|
75
|
+
|
|
76
|
+
Approvals protect you from CODA's *own* actions. A separate concern is the **code and instructions you load into CODA**: skills, plugins (including marketplace catalogs), MCP servers, extensions, and agent definitions all load text or executable code from disk or packages — and they are **not sandboxed**. A few rules of thumb:
|
|
77
|
+
|
|
78
|
+
- **Install and enable only from sources you trust.** MCP servers and some extensions can spawn processes and reach the network or filesystem.
|
|
79
|
+
- **The model can read skill text and call any tool you expose** — treat an installed skill or extension like running someone else's code.
|
|
80
|
+
- **Keep approvals on** (don't blanket `--auto-approve all`) when running with untrusted extensions or MCP servers active.
|
|
81
|
+
- **Don't put secrets into prompts or project files** that an untrusted extension could read.
|
|
82
|
+
|
|
83
|
+
## Where to set it
|
|
84
|
+
|
|
85
|
+
- **From inside CODA:** `/settings` → **Bash Tool Preferences** (applies globally or per project).
|
|
86
|
+
- **Per project:** project-level config overrides your personal defaults — see [Configuration](#configuration).
|
|
87
|
+
- **For a single run:** the `--bash-security` and `--auto-approve` flags (see [Commands & Flags](#cli-reference)).
|
|
88
|
+
|
|
89
|
+
## See also
|
|
90
|
+
|
|
91
|
+
- [Make Changes Safely](#guide-changes) — staying in control while CODA edits code.
|
|
92
|
+
- [How CODA Works](#how-it-works) — tools, memory, and the agent loop.
|
|
93
|
+
- [Configuration](#configuration) — where settings live and how they cascade.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Quick Start
|
|
2
|
+
|
|
3
|
+
This guide takes you from a fresh CODA install to a real working session in under five minutes. You'll open CODA in a project, connect a provider, and run prompts that actually do something useful.
|
|
4
|
+
|
|
5
|
+
## 1. Open CODA in your project
|
|
6
|
+
|
|
7
|
+
Always launch CODA from your project's root directory. That's how it knows what codebase to work with.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
cd /path/to/your/project
|
|
11
|
+
coda
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The first time you run CODA, if you haven't set up a provider yet, a setup wizard appears automatically. Follow the prompts to pick your Glob.AI OS environment and sign in. For a step-by-step walkthrough of that flow, see [Connect a Provider](#connect-provider).
|
|
15
|
+
|
|
16
|
+
## 2. Try these prompts
|
|
17
|
+
|
|
18
|
+
Here are example prompts that work well for a first session. Start with the ones that feel most relevant to you.
|
|
19
|
+
|
|
20
|
+
**Understand what you're looking at**
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
What is the main entry point of this project and how is it structured?
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Create an implementation plan**
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Create a plan to add the X, Y, and Z capabilities to this feature. Don't change files yet — first explain the affected modules, risks, and test strategy.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
> CODA also ships with a built-in **`plan`** skill for this workflow. You can ask naturally as above, or invoke it explicitly with `/plan` when you want CODA to focus on requirements analysis and implementation planning.
|
|
33
|
+
|
|
34
|
+
**Review a pull request**
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Review this PR and summarize the main risks, missing tests, and any code-quality issues: <pull-request-url>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Diagnose a reported bug**
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
Diagnose this bug report and trace the most likely root cause in the codebase: <github-issue-url>
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Search for code smells**
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
Search the codebase for code smells around error handling, duplicated logic, and overly large functions. Report findings first; don't edit anything yet.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 3. Review what CODA does
|
|
53
|
+
|
|
54
|
+
When CODA wants to run a shell command or write to a file, it shows you what it's about to do and asks for approval (depending on your [bash approval settings](#config-reference)). You can:
|
|
55
|
+
|
|
56
|
+
- Press **Y** to approve and continue
|
|
57
|
+
- Press **N** to skip that step
|
|
58
|
+
- Press **Esc** to interrupt the current turn entirely
|
|
59
|
+
|
|
60
|
+
If CODA goes in the wrong direction, interrupt early — don't let it keep going. Interrupting and redirecting is faster than undoing a lot of changes.
|
|
61
|
+
|
|
62
|
+
## 4. Undo anything
|
|
63
|
+
|
|
64
|
+
CODA takes a checkpoint (a file snapshot) **before every turn** — that is, before CODA starts acting on the message you just sent. If something goes wrong, restoring that checkpoint takes your files back to the state they were in **right before that message was processed**:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
/timeline
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This opens the timeline picker (you can also type `/rewind`, or press **Esc** twice when the chat input is empty). Select any point to restore your files to that state.
|
|
71
|
+
|
|
72
|
+
> **Tip — give CODA your project's rules.** Run `/init` to generate an `AGENTS.md`: project-specific instructions for the agent (coding conventions, how to run tests, areas to avoid, etc.). It's optional, but it makes CODA follow your team's conventions. Review the file, edit anything it missed, and commit it to Git so the whole team benefits — or write it by hand at any time.
|
|
73
|
+
|
|
74
|
+
## 5. Keep the session healthy
|
|
75
|
+
|
|
76
|
+
A few small habits make long sessions much better:
|
|
77
|
+
|
|
78
|
+
- **Watch the context meter.** The status bar shows how full the conversation context is. As it nears 100%, CODA compacts automatically — or you can run `/compact` before switching to a new topic.
|
|
79
|
+
- **Start fresh for unrelated work.** `/new` opens a clean session (the old one is saved and resumable) so unrelated context doesn't bleed into the next task.
|
|
80
|
+
- **Switch models when it helps.** Press `Shift+Tab` to cycle favorite models, or run `/switch-model` to pick one — use a stronger model for hard reasoning, a cheaper one for routine edits.
|
|
81
|
+
- **Resume later.** When you exit (`Ctrl+C` twice or `/exit`), CODA prints a `coda --session-id <id>` command you can paste to pick up exactly where you left off. You can also run `/sessions` from within any active session to open the session browser and switch directly. For an even quicker pick-up, run `coda --lastsession` from your project root to resume the most recent session automatically.
|
|
82
|
+
|
|
83
|
+
## A realistic first session
|
|
84
|
+
|
|
85
|
+
Putting it together, a typical first session looks like:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
You: What does this service do and where's the entry point?
|
|
89
|
+
CODA: (reads files, explains the structure)
|
|
90
|
+
|
|
91
|
+
You: Add input validation to the /signup endpoint. Explain the plan first, don't edit yet.
|
|
92
|
+
CODA: (lists the files it would touch and why)
|
|
93
|
+
|
|
94
|
+
You: Looks good — make the changes and run the tests.
|
|
95
|
+
CODA: (edits files, asks to approve the test command, reports results)
|
|
96
|
+
|
|
97
|
+
You: /timeline ← if anything looks wrong, roll back to before that turn
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## What's next
|
|
101
|
+
|
|
102
|
+
- [Understand a Codebase](#guide-understand) — more prompts for exploring unfamiliar code
|
|
103
|
+
- [Make Changes Safely](#guide-changes) — checkpoints, approvals, and how to undo
|
|
104
|
+
- [Configuration](#configuration) — switch providers, tune settings, manage secrets
|