atm

agent
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 6 GitHub stars
Code Basarisiz
  • rm -rf — Recursive force deletion command in release.sh
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Agent Task Markdown: a Markdown runbook format and CLI for organizing agents into repeatable, inspectable, and coordinated workflows. 一种 Markdown 格式拓展和 CLI工具,用于把多个 agent 组织成可复用、可检查、可协同的工作流。

README.md

ATM

中文文档

ATM

ATM stands for Agent Task Markdown: a Markdown runbook format for coding agents.

It is for the space between one-off prompts and full workflow systems. When a project needs several agent tasks, such as running checks, reviewing docs, validating examples, and applying fixes, a chat thread quickly becomes hard to audit and repeat. ATM lets you write that work down as a readable todo.md: project context stays as normal Markdown, and a small set of slash commands describes how the work should run.

ATM turns the file into an agent execution plan. Tasks can run in order, retry until a condition passes, branch into parallel checks, wait for each other, and produce structured results. You can preview the plan before any agent starts, run it through Codex or Claude Code, and reuse workflows as local commands or HTTP APIs.

When To Use It

  • Ask AI to draft and refine ATM files, then let the workflow evolve with the project instead of living only in chat history.
  • Turn repeated prompt work into reusable runbooks, so agents can spend more time executing and less time being re-instructed.
  • Try different collaboration patterns, from sequential review to parallel checks and multi-agent style handoffs, without building a workflow service first.
  • Capture complex project procedures as Markdown that both humans and agents can read, review, run, and improve.
  • Expose recurring workflows as local commands or small HTTP APIs when they become part of everyday project operations.

Requirements

  • Codex on PATH for the default runner, or Claude Code on PATH when using --tool claude.
  • Linux, macOS, or Windows.
  • Go 1.25 or newer only when building from source.

If a runner is not on PATH, pass its executable path with --codex /path/to/codex or --claude /path/to/claude.

Install

Download the binary for your platform from GitHub Releases and put it on PATH. The release also includes checksums.txt for verification.

For example, on Linux amd64:

chmod +x atm-linux-amd64
mv atm-linux-amd64 atm

On Windows, download the matching .exe, such as atm-windows-amd64.exe.

Check the installed binary:

atm --version

To build from source instead:

go build -o atm ./cmd/atm

Quick Start

Create todo.md:

/for 3 until tests pass

Run the project test suite and fix any failures.



/go

Check the setup documentation for steps that are missing, stale, or unclear.
Write findings to `checks/setup.md`.



/go

Check examples, scripts, and configuration files for commands that no longer work.
Write findings to `checks/commands.md`.



/wait



/task

Read `checks/setup.md` and `checks/commands.md`, then fix the confirmed project issues.

Preview the execution plan. check does not start an agent:

./atm check --plan todo.md

Open the plan flowchart in a browser:

./atm check --open todo.md

Run it:

./atm run todo.md

The default command is also run, so this is equivalent:

./atm todo.md

On Windows PowerShell:

.\atm.exe run todo.md

Select a runner explicitly:

./atm run --tool codex todo.md
./atm run --tool claude todo.md

--tool claude-code is also accepted. Multiple ATM files can be queued in one run:

./atm run --jobs 4 todo.md rollout.md followup.md

ATM File Format

In Markdown ATM files, headings provide context and scope. They do not start tasks by themselves. Executable work starts at /task, a control command such as /for, /go, /wait, /if, or /else, or a task header command followed by prompt text.

# Project context

This ordinary Markdown is context for tasks in this section.

## Documentation

/task docs

Review the docs with the section context above.

Task command quick reference:

Command Use
/task [name] Start a prompt task and optionally name its agent session.
/resume name Continue a named session from an earlier task.
/fork name Fork a named session and run the current task from that history.
/args ... Append CLI arguments to the selected runner for this task.
/cd path Prepare and enter a task workspace.
/let name value Define a template variable, or a lazy value from /bash or /call.
/bash script Run a shell script before the prompt.
/output [file] Save task output; with a schema fence, require structured JSON.
/db ... Attach a local JSON task database as memory or a blackboard.
/skill ... Declare or mount local skills for the task workspace.
/mcp ... Declare MCP servers, expose definitions, or grant task access to MCP tools.
/webhook ... Declare webhook targets or send webhook notifications.
/def + /call Define and reuse task templates.
/return ... Return text, bash output, or a multiline template from a definition.
/import ... Import definitions from another ATM file.
/pool name max [buffer] Declare a named background worker pool.
/if condition Choose a branch with a local expression or structured check.
/else Provide the alternate branch for /if.
/for ... Retry, loop, or iterate over files, directories, ranges, or lists.
/go [pool] Start a task in the background.
/wait [pool] Wait for earlier background tasks.
/flag ... Declare parameters for atm run, dynamic commands, and serve APIs.
/context #Heading Add another Markdown section's ordinary documentation to task context.
/doc ... Keep human-only notes out of agent context.

For the complete format, see the user manual and command reference.

Reuse Workflows

Any ATM file can be run directly, registered as a project-local command, or exposed through serve. Add /flag when the reused workflow should accept CLI or API parameters.

/flag string area project area to review

/flag bool fix apply safe fixes default:false



/task

Review {{area}}. If {{fix}} is true, apply safe fixes.

Register it as a local command:

./atm flag register workflows/review.md --name review
./atm review -area docs -fix

Serve an ATM file as an HTTP API:

./atm serve workflows/review.md --addr 127.0.0.1:8080

For reusable project APIs, register routes:

./atm serve register workflows/review.md --path /review
./atm serve --addr 127.0.0.1:8080

GET /review runs synchronously. POST /review creates an async job, and GET /jobs/{id} reads job state. GET /openapi.json returns generated OpenAPI metadata.

Results

atm run works from a managed live copy and restores the original source file when the run exits.

Item Default location
Run workspace ~/.atm/runs/<run-id>/
Result document ~/.atm/runs/<run-id>/result.todo.md
Task reports, logs, events, and outputs ~/.atm/runs/<run-id>/tasks/<task-id>/
Project-local dynamic command artifacts .atm/commands/<command>/<timestamp>/
Project-local API artifacts .atm/api/runs/... and .atm/api/jobs/...

Use ATM_HOME to choose a different ATM home. --output DIR or -o DIR redirects the shared output directory, but source backups, task directories, and result.todo.md remain in the managed run workspace.

Unfinished runs can be continued with:

./atm resume <run-id>
./atm resume --last

If a run is interrupted while a source file is hidden behind a placeholder, recover the latest saved source copy with:

./atm resume --restore-source

How It Works

ATM compiles the ATM file into a static plan before execution. atm check --plan prints that plan without running bash scripts or agents, so loops, branches, background work, pools, and task dependencies can be reviewed first.

During atm run, ATM copies the source ATM file and imports into a managed run workspace, executes the live working copy, and restores the original source file when the run exits. Status blocks, reports, runner event streams, structured outputs, and logs are written under the run workspace for auditability.

Natural-language checks such as /for 3 until tests pass are implemented as structured tool calls. After each attempt, ATM exposes a scoped MCP check tool to the runner, currently through a local loopback streamable HTTP endpoint by default, and asks the model to report whether the condition is satisfied with machine-readable fields rather than free-form prose. Local expression forms such as /for until(expr) skip the model and are evaluated deterministically.

ATM uses scoped MCP tools for structured-output boundaries because modern coding agents are trained to use tools and MCP-style schemas reliably. Whenever ATM needs a structured decision or result, such as an until decision, schema-backed /output, or definition-backed helper output, it exposes a narrowly scoped local MCP endpoint and reads the tool result instead of scraping assistant text. Features such as /db and /webhook also use scoped tools where the agent needs controlled access to local state or external notifications.

Handy Commands

CLI command quick reference:

Command Use
atm --version Print the CLI version, commit, and build time when available.
atm run [files...] Run pending prompt blocks; also the default command.
atm resume ... Resume an unfinished managed run or restore saved source files; supports --last and --restore-source.
atm flag register/scan/unregister/list Manage ATM files registered as dynamic CLI commands.
atm append <file> [prompt...] Append a formatted task to a source file or active run.
atm check [files...] Validate ATM files without running agents.
atm report ... Summarize task reports and audit state.
atm clean ... Remove generated state/report blocks or audit artifacts.
atm format <file> Normalize task header spacing and generated state layout.
atm serve [file] Serve one ATM file as an HTTP API.
atm serve register/scan/unregister/list Manage registered API ATM files.

Common examples:

Command Use
./atm check todo.md Validate an ATM file without running it.
./atm check --plan todo.md Print a dry-run execution plan.
./atm check --plan --preview todo.md Include previewable lazy provider values in the plan.
./atm check --open todo.md Open a temporary plan flowchart in a browser.
./atm check --plan todo.md --html plan.html Write the same flowchart to a file.
./atm append todo.md 'Review README.' Append a formatted task to a source or active run.
./atm format todo.md Normalize task header spacing and generated state layout.
./atm report Summarize the latest run for the current project.
./atm clean result.todo.md Remove generated status blocks while keeping audit artifacts.
./atm clean --repair-ids result.todo.md Repair duplicate generated report ids.

More

License

MIT. See LICENSE.

Yorumlar (0)

Sonuc bulunamadi