Requires Node.js 22.19+ and pi 1.1.x.
pi install https://github.com/ATaC-team/ATaCRestart pi or run /reload, then give pi a task as usual.
- Work as usual. ATaC looks for reusable tool-call sequences after pi finishes a task and proposes programs in the background.
- Test and publish. Review candidates in
/atac:inbox, or enable automatic testing and publishing with/atac:permissions auto. - Reuse with new inputs. pi sees your published programs and is instructed to prefer a matching program over repeating the work.
A program combines tool calls with JavaScript logic. This one reads several text files in parallel, joins their contents, and writes a single file:
const notes = await Promise.all(
inputs.paths.map((path) => tools.read({ path })),
);
await tools.write({
path: inputs.output,
content: notes.join("\n\n"),
});
return { output: inputs.output };Once published, pi can reuse the whole sequence with a new set of files. Each program includes a manifest and tests; see the program reference for the format.
Review candidates, inspect code and test reports, request revisions, and browse published programs—all from /atac:inbox.
Inbox with example programs.
Tests call real tools with your existing pi permissions. See the usage guide for controls and testing behavior.
Automatic extraction with manual review is the default. Use /atac:permissions to choose automatic publishing or fully manual extraction and publishing. In manual extraction mode, /atac:extract analyzes unprocessed work from the current session together. All modes keep their results in Inbox.
- Usage — Installation options, Inbox controls, and testing.
- Programs — Manifests, code, tests, and agent tools.
- Configuration — Model settings, execution limits, and local storage.
Clone the repository and install dependencies, then link the checkout to pi:
npm ci
pi install /absolute/path/to/ATaCRun checks:
npm run check
npm test
npm run test:package