Agents Toolchain (atc)
Overview
A CLI for creating and running AI agents. Define an agent's task, model, and tools in YAML, then run it from the terminal. Agents can read project files, write documentation and tests, or review code.
Installation
All release packages contain a ready-to-run Go binary. The command is always atc.
npm (Windows, Linux, macOS)
Requires Node.js 22 or later. Install globally:
npm install -g @deahesi/agents-toolchain
atc --help
atc --version
Or run it without a global installation:
npx @deahesi/agents-toolchain --help
npx @deahesi/agents-toolchain init
The npm package includes a launcher and installs the native binary for Windows, Linux, or macOS on x64 or ARM64. Go is not required. Installation also works with --ignore-scripts; keep optional dependencies enabled so npm can install the platform package. An unsupported platform or a missing platform package produces an error with installation guidance. The command is atc for both local and global installations.
Homebrew (macOS, Linux)
brew install --cask Deahesi/tap/agents-toolchain
atc --help
The cask selects the x64 or ARM64 archive from GitHub Releases. It requires neither Go nor Node.js. Updates use brew upgrade --cask agents-toolchain.
pip (Windows, Linux, macOS)
Requires Python 3.10 or later. Install in your Python virtual environment:
python -m pip install agents-toolchain
atc --help
python -m agents_toolchain --version
Platform wheels include the native binary; installation does not compile Go or download executables from GitHub. Wheels cover x64 and ARM64 on Windows, macOS 12+, and Linux with glibc or musl. There is no source distribution that would require a Go compiler. Keep your virtual environment activated to use its atc command.
Debian / Ubuntu and RPM distributions
Download the package for your architecture from GitHub Releases. For example, for version 0.1.2 on x64:
# Debian / Ubuntu
sudo apt install ./agents-toolchain_0.1.2_amd64.deb
# Fedora / RHEL family
sudo dnf install ./agents-toolchain-0.1.2-1.x86_64.rpm
atc --help
ARM64 packages end in _arm64.deb and .aarch64.rpm. Packages install /usr/bin/atc, the README, and the MIT license. These are downloadable packages, not an APT or YUM repository.
From source
Alternatively, build from source with Go 1.26.5 or later:
go install github.com/Deahesi/agents-toolchain/cmd/atc@latest
Make sure the installation directory is in PATH. Go uses GOBIN if set, otherwise GOPATH/bin (usually %USERPROFILE%\go\bin on Windows). go install does not update PATH; after adding the directory, open a new terminal.
Base usage
Run the following steps from the project directory you want the agent to work on.
-
Create a
.envfile with your provider's API key:OPENAI_API_KEY=your-api-key
-
Initialize the project and create an agent:
atc init atc add hello
Skip
initifagents-toolchain.ymlalready exists. Theaddcommand asks for the agent's settings and saves them toagents/hello/agent.yml. -
Run the agent:
atc run hello --prompt "Hello!"
Use --prompt or -p to provide a request. Without it, the agent follows the task in system_prompt.
Use atc init --agents-dir <directory> to choose where agent configs are stored. All commands accept --workspace-dir <directory> to choose the project containing agents-toolchain.yml. File tools and .env still use the current working directory, so launch the CLI from the project you want the agent to work on.
Config
agents-toolchain.yml specifies the directory containing agents:
agents_dir: agents
Each agent has a config at agents/<name>/agent.yml:
version: "1.0"
agent:
name: hello
description: My first agent
provider: openai
model: gpt-4o
temperature: 0.2
system_prompt: |
You are a helpful assistant. Answer clearly and to the point.
tools: []
namemust match the agent directory name.descriptionbriefly describes the agent.providerisopenai,anthropic,ollama, oropenrouter.modelis the model ID for that provider, without adding the provider prefix.temperatureranges from0to2; lower values give more predictable responses.system_promptdescribes the agent's task and expected output.toolslists the tools the agent can use. Leave it empty for text-only tasks.
Built-in tools use type: builtin. Available names are list_files, search_files, read_file, write_file, edit_file, execute_command, get_environment, and get_datetime.
The CLI automatically reads .env from the current working directory at startup. Existing environment variables take priority. The file is optional if the variables are already set; --workspace-dir does not change where .env is read.
| Provider | Environment variables |
|---|---|
openai |
OPENAI_API_KEY; optional OPENAI_BASE_URL |
anthropic |
ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN |
openrouter |
OPENROUTER_API_KEY |
ollama |
Optional OLLAMA_HOST, defaults to http://localhost:11434 |
Examples
Save each config at the path shown. You can create the folder and file manually or use atc add <name> and replace the generated config. These examples use OpenAI; set OPENAI_API_KEY in .env and choose a model that supports tools.
Documentation from project files
agents/docs/agent.yml:
version: "1.0"
agent:
name: docs
description: Write documentation from local project files
provider: openai
model: gpt-4o
temperature: 0.2
system_prompt: |
Read the local project, starting from the current directory.
Explore relevant subdirectories and inspect source files, configs,
and existing documentation. Write or update README.md with a simple
overview, setup steps, configuration, and usage examples.
Describe only behavior supported by the files you read.
Keep the project's documentation language and style.
Change only documentation files. End with a brief list of changes.
tools:
- type: builtin
name: list_files
- type: builtin
name: read_file
- type: builtin
name: write_file
- type: builtin
name: edit_file
atc run docs
Automated tests from a local project
agents/tests/agent.yml:
version: "1.0"
agent:
name: tests
description: Write and run tests for the local project
provider: openai
model: gpt-4o
temperature: 0.2
system_prompt: |
Read the local project, starting from the current directory.
Explore relevant subdirectories, source files, existing tests,
and test configuration. Use the project's test framework and style.
Add meaningful tests for normal behavior, edge cases, and errors.
Change only test files. Run the relevant tests with execute_command.
End with a brief list of added tests and their results.
If tests could not be run, say so and explain why.
tools:
- type: builtin
name: list_files
- type: builtin
name: read_file
- type: builtin
name: write_file
- type: builtin
name: edit_file
- type: builtin
name: execute_command
atc run tests
Project review with structured findings
agents/review/agent.yml:
version: "1.0"
agent:
name: review
description: Review the local project and report problems
provider: openai
model: gpt-4o
temperature: 0.2
system_prompt: |
Review the local project, starting from the current directory.
Explore relevant subdirectories and read source files, configs,
and tests. Look for bugs, security issues, and incorrect behavior.
Report only problems supported by the files you read.
Do not modify files.
In your final response, report each problem as a separate block:
file: <relative file path>
row: <line number or range, starting at 1>
problem: <what is wrong and its impact>
Separate blocks with a blank line. Do not wrap them in Markdown fences.
If problems were found, the final line must be exactly:
Status: error
If no problems were found after completing the review, output only:
Status: success
If the review could not be completed, report the blocker using the
same block format, use row: N/A when needed, and end with Status: error.
Do not output anything after the status line.
tools:
- type: builtin
name: list_files
- type: builtin
name: read_file
atc run review
Example final response when a problem is found:
file: src/config.go
row: 42
problem: An empty API key is accepted, causing requests to fail later.
Status: error
With no problems:
Status: success
Metadata
Release files for agents-toolchain 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| agents_toolchain-0.1.3-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| agents_toolchain-0.1.3-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| agents_toolchain-0.1.3-py3-none-manylinux_2_17_x86_64.musllinux_1_2_x86_64.whl | Python 3 | none | Linux glibc 2.17+ x86-64, Linux musl 1.2+ x86-64 | Details |
| agents_toolchain-0.1.3-py3-none-manylinux_2_17_aarch64.musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64, Linux glibc 2.17+ ARM64 | Details |
| agents_toolchain-0.1.3-py3-none-macosx_12_0_x86_64.whl | Python 3 | none | macOS 12.0+ x86-64 | Details |
| agents_toolchain-0.1.3-py3-none-macosx_12_0_arm64.whl | Python 3 | none | macOS 12.0+ ARM64 | Details |
Total release size: 49.3 MB
Release files / agents_toolchain-0.1.3-py3-none-win_arm64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-win_arm64.whl |
|---|---|
| Size | 7.7 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
6e01257e59392c6834602e7c6c07471d5240ec5abaef02b3c098f483fb0a74a5
|
|
BLAKE2b-256 checksum How to use checksums |
674f884db134fb89e6af257a6cd3f78beb3258e89dde99c9936f964a0428980d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agents_toolchain-0.1.3-py3-none-win_amd64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-win_amd64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
ad1156eeeb1a86842f14149daa77c33c74578df71c1567d42a6ba9974d3c2ed0
|
|
BLAKE2b-256 checksum How to use checksums |
4cfdb439522023a2099133d30e51542c10218fcbf9ffc87cb9b7059254551129
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agents_toolchain-0.1.3-py3-none-manylinux_2_17_x86_64.musllinux_1_2_x86_64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-manylinux_2_17_x86_64.musllinux_1_2_x86_64.whl |
|---|---|
| Size | 8.4 MB |
| Tags | Linux glibc 2.17+ x86-64 Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
a096e9ecaeff79d2ab2b2dd578ed711be89785d76e1359ded56cae2c3b8a619c
|
|
BLAKE2b-256 checksum How to use checksums |
1b766362a9db7034ce79e1592ea0cae1d3520a217c401bfd8f70a6341b0d248a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agents_toolchain-0.1.3-py3-none-manylinux_2_17_aarch64.musllinux_1_2_aarch64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-manylinux_2_17_aarch64.musllinux_1_2_aarch64.whl |
|---|---|
| Size | 7.6 MB |
| Tags | Linux glibc 2.17+ ARM64 Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
918e9c42cf44b41ed652ecd82b18337c7939998132242bd6661525ae7f04c1bd
|
|
BLAKE2b-256 checksum How to use checksums |
fbbcf011c12a337c9e63ac1d11ea39ae5d88e4bf46eb3b665b9950afd2bd99be
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agents_toolchain-0.1.3-py3-none-macosx_12_0_x86_64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-macosx_12_0_x86_64.whl |
|---|---|
| Size | 8.7 MB |
| Tags | Python 3 macOS 12.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
588349570f30c7885fb2563be0eff32164e97b7d7631ced19bcd0eca35d22408
|
|
BLAKE2b-256 checksum How to use checksums |
ec72b82f7d498e5560620ed80935f092047a101998f773e14cf734fc20af4b00
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / agents_toolchain-0.1.3-py3-none-macosx_12_0_arm64.whl
| Download URL | agents_toolchain-0.1.3-py3-none-macosx_12_0_arm64.whl |
|---|---|
| Size | 8.1 MB |
| Tags | Python 3 macOS 12.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0c6e08fe8086b8dd38df0fadfb1942901771d030d0b851bed6dde6505198afd9
|
|
BLAKE2b-256 checksum How to use checksums |
061d6535a1b65d3d068165add25dfe2133c854ff09cbf7714cf6f4344c2d7554
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|