Documentation · v0.1.0

The Craftsman's
Manual

Everything you need to install, configure and work with DAEDALUS — the AI coding agent that lives only in your terminal. Reading time: about ten minutes.

01Overview #

DAEDALUS is a coding agent powered by Claude. You give it a task in plain language; it reads your project, decides what to change, asks your permission, makes the change, and runs your tests to prove it worked.

It has three deliberate limits:

  • Terminal only. No GUI, no browser tab, no editor plugin. If it isn't started in an interactive terminal, it exits.
  • One folder. File tools can only touch the folder you launched it from and what's inside it.
  • Asks first. Writing files and running commands need your approval, unless you turn that off.

02Requirements #

NeedDetails
Node.js 20+Check with node --version. Get it from nodejs.org.
A terminalWindows Terminal, PowerShell, macOS Terminal, iTerm2, or any Linux terminal. A terminal with 24-bit colour looks best.
Anthropic credentialsAn API key from the Anthropic Console, or a login made with the ant CLI. See API key & login.

03Install #

One line. Pick whichever you like:

Try it without installing

npx
npx daedalusrh

Install it for good

npm
npm install -g daedalusrh

After a global install the short command daedalus works in any folder. Check it with daedalus --version.

Other package managers

pnpm · bun · yarn
pnpm dlx daedalusrh   # or: pnpm add -g daedalusrh
bunx daedalusrh       # or: bun add -g daedalusrh
yarn dlx daedalusrh

04API key & login #

DAEDALUS talks to Claude through the Anthropic API using your own account, so usage is billed to you. It picks up credentials in this order — the first one found wins:

  1. ANTHROPIC_API_KEY environment variable
  2. ANTHROPIC_AUTH_TOKEN environment variable
  3. A profile saved by ant auth login

Option A — API key

PowerShell (current window)
$env:ANTHROPIC_API_KEY = "sk-ant-..."
PowerShell (permanent, new windows)
setx ANTHROPIC_API_KEY "sk-ant-..."
bash / zsh
export ANTHROPIC_API_KEY=sk-ant-...   # add to ~/.bashrc or ~/.zshrc to keep it

Option B — log in once

If you use Anthropic's ant CLI, run ant auth login once. DAEDALUS will use that profile automatically — no key to copy around.

Keep it secret

Never paste your key into a chat, a commit or a screenshot. If it leaks, revoke it in the Anthropic Console and make a new one.

05Your first task #

Go into a project folder and start the agent:

terminal
cd ~/my-app
daedalus

Or hand it a task straight away:

terminal
daedalus "add a /health endpoint and test it"

A typical turn looks like this:

  ─────────────────────────────────────── ◇ ask · ↑0 ↓0
  ❯ add a /health endpoint and test it

  ✦ thinking
  │ Read the server routes first, then add the endpoint and run the tests.

  ╭─ ◫ read_file  read src/server.js
  ╰─ ✓ 48 lines read · 5ms

  ╭─ ✎ edit_file  edit src/server.js
  │ -   "/": () => "hello",
  │ +   "/": () => "hello",
  │ +   "/health": () => JSON.stringify({ ok: true }),
  │ allow?  [y] yes  [n] no  [a] always  › y
  ╰─ ✓ edited src/server.js · 4ms

  ╭─ ❯ run_command  $ npm test
  │ allow?  [y] yes  [n] no  [a] always  › y
  │ 12 passing
  ╰─ ✓ exit 0 · 2.1s

  Added GET /health returning { ok: true }. All 12 tests pass.

  ✻ forged in 14.2s · ↑3.3K ↓530 tokens · 5.0K from cache

06Reading the interface #

You seeWhat it means
◇ ask / ◆ autoThe status line above each prompt. ask means writes and commands need your approval; auto means they run without asking. The arrows show tokens sent ↑ and received ↓ this session.
Shimmering spinnerThe model is working. The timer counts seconds; Ctrl+C stops it.
✦ thinkingA summary of the model's reasoning, in grey italics behind a │ gutter.
Boxed card ╭─ … ╰─One tool call: the tool, what it touched, any diff or output, and how long it took. ✓ is success, ✗ is an error or a declined action.
✻ forged in …End of a turn: total time and tokens, including how much came from the prompt cache.

Replies are rendered as light markdown: headings, bullet and numbered lists, bold, inline code and boxed code blocks.

07Approvals #

Reading is free. Changing things needs a yes. When a tool needs approval you'll see a preview first — a red/green diff for edits, the first lines of the file for writes, the exact command for shell runs — then:

KeyEffect
yAllow this one action.
n (or anything else)Decline. The agent is told you said no and picks another approach instead of retrying the same thing.
aAllow this and every later action for the rest of the session (turns on auto mode).
Tip

Type /auto at the prompt any time to switch auto-approve on or off. The status line shows which mode you're in.

08Commands & keys #

CommandWhat it does
/helpShow the command list.
/clearForget the conversation and start fresh (also clears the screen).
/autoToggle auto-approve for writes and shell commands.
/costTokens used this session: input, cache reads and output.
/exit or /quitLeave.
Ctrl+CDuring a turn: stop it. At the empty prompt: quit.

The conversation is remembered across turns until you /clear or quit, so you can say things like "now add a test for that too".

09Writing good tasks #

  • Say what "done" looks like. "Fix the login bug — the tests in auth.test.js should pass" beats "fix login".
  • Name files when you know them. It can search, but a pointer saves time and tokens.
  • One task at a time. Big rewrites go better as a few smaller turns.
  • Any language works. It replies in the language you write in.
  • Interrupt freely. If the thinking goes the wrong way, press Ctrl+C and steer.

10Tools #

The agent can do exactly six things. Nothing else is available to it.

ToolApprovalBehaviour
list_dirfreeLists one folder (not recursive), folders first.
read_filefreeReturns numbered lines, up to 2,000 at a time; larger files are read in windows.
searchfreeRegex search across files. Skips node_modules, .git, dist, build, .next, __pycache__, .venv, binary files and files over 1 MB. Up to 200 matches.
write_fileasksCreates or overwrites a file; creates missing folders.
edit_fileasksReplaces one exact snippet. Refuses if the snippet is missing or appears more than once.
run_commandasksRuns a shell command in the workspace (cmd.exe on Windows, /bin/sh elsewhere). Stopped after 120 seconds. Output is capped at 30,000 characters.

11Configuration #

SettingDefaultPurpose
ANTHROPIC_API_KEY—Your API key. See API key & login.
DAEDALUS_MODELclaude-opus-5-5Which Claude model to use.
Launch foldercurrent directoryThe workspace. File tools can't leave it — cd into the right project before starting.

12Model & limits #

  • Model: Claude Opus 5.5 by default, with adaptive thinking at high effort.
  • Reply length: up to 64,000 output tokens per reply.
  • Fallback: if the main model declines a request, the API can retry it on another Claude model automatically.
  • Caching: repeated context is cached, which makes long sessions faster and cheaper. /cost shows the cache reads.
  • Memory: only the current session. Nothing is remembered after you quit.

13Safety model #

  • Workspace lock: every file path is resolved against the launch folder; anything that points outside (../, absolute paths) is refused.
  • Approval gate: writes, edits and commands wait for you unless auto mode is on.
  • Visible changes: you see the diff or file preview before approving.
  • Timeouts: shell commands are killed after 120 seconds.
Important

The workspace lock applies to the file tools. A shell command runs with your user permissions and can reach anything you can. Read commands before pressing y, and be careful with auto mode in folders you care about.

14Privacy & data #

To reason about your code, DAEDALUS sends these to the Anthropic API as part of the conversation:

  • what you type,
  • the contents of files it reads and the results of searches,
  • the output of commands it runs,
  • your workspace path and operating system name.

Nothing is sent anywhere else, and DAEDALUS keeps no logs on disk. Files it never reads are never sent. Anthropic's handling of API data is described in their privacy policy and commercial terms.

Tip

Don't start it in a folder full of secrets (like a home directory with .env files) unless you need to. A focused project folder keeps the context small and private.

15Cost #

DAEDALUS itself is free and MIT-licensed. You pay Anthropic for the tokens it uses, at the normal API price of the model you've chosen. To keep costs down:

  • run it inside the specific project, not a huge parent folder;
  • /clear between unrelated tasks so old context isn't resent;
  • check /cost now and then;
  • set a monthly spend limit in the Anthropic Console.

16Troubleshooting #

DAEDALUS only runs in an interactive terminal

It was started with its input or output piped or redirected, or from a tool that isn't a real terminal. Open a terminal window and run daedalus directly.

✗ No valid credentials

No API key was found, or the key is wrong or revoked. Set ANTHROPIC_API_KEY in the same terminal window (or open a new window after setx), or run ant auth login.

✗ Rate limited

Your account hit its request or token limit. Wait a minute and try again; higher limits come with higher usage tiers in the Anthropic Console.

✗ API error 4xx / 5xx

A 400 usually means an invalid model name in DAEDALUS_MODEL. A 5xx is a temporary server problem — the SDK already retries twice, so try again shortly.

! The model declined this request

The request was refused by the model's safety checks, including the fallback model. Rephrase the task or split it into smaller steps.

! Output hit the token limit mid tool call

The agent tried to write something too large in one go. Ask for smaller steps, e.g. one file at a time.

daedalus is not recognized as a command

The global install didn't run or npm's global folder isn't on your PATH. Run npm install -g daedalusrh again and open a new terminal window — or skip installing and use npx daedalusrh.

Colours or box lines look broken

Your terminal doesn't support 24-bit colour or the font lacks box-drawing characters. Windows Terminal and recent PowerShell on Windows 10/11 work well; try a font like Cascadia Code or JetBrains Mono.

17Uninstall #

terminal
npm uninstall -g daedalusrh

That's it — DAEDALUS stores nothing else on your machine. If you only ever used npx, there's nothing to uninstall.