machine-tool

Delegates work to external agent CLIs (machine tools) for large code changes, investigation, or analysis. Use when: offloading implementation via the machine command, heavy refactors, or batched agent runs.

224 stars

Best use case

machine-tool is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Delegates work to external agent CLIs (machine tools) for large code changes, investigation, or analysis. Use when: offloading implementation via the machine command, heavy refactors, or batched agent runs.

Teams using machine-tool should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/machine-tool/SKILL.md --create-dirs "https://raw.githubusercontent.com/xuiltul/animaworks/main/templates/en/common_skills/machine-tool/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/machine-tool/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How machine-tool Compares

Feature / Agentmachine-toolStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Delegates work to external agent CLIs (machine tools) for large code changes, investigation, or analysis. Use when: offloading implementation via the machine command, heavy refactors, or batched agent runs.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Machine Tool

Delegate tasks to external agent CLIs.
Offload heavy work like code changes, investigation, and analysis to external agents.

## Design Philosophy

You are the **craftsperson**. The machine is a **machine tool** (CNC, laser cutter, etc.).
A machine tool can cut with incredible precision, but it doesn't decide what to build.
It has no memory, no communication, no identity.
**Your job is to provide precise blueprints (instructions).**

## CLI Usage

```bash
animaworks-tool machine run [options] "instruction" -d /path/to/workdir
```

### CLI Options

| Option | Description |
|--------|-------------|
| `-e ENGINE` | Engine selection (omit for auto-selected default; use `-h` to list available engines) |
| `-d PATH` | Working directory (default: current directory) |
| `-t SECONDS` | Timeout in seconds (default: 600s sync, 1800s background) |
| `-m MODEL` | Model override (default: engine's default) |
| `--background` | Background execution (1800s timeout; output streams to `state/cmd_output/`) |
| `-j / --json` | Output result as JSON |

### Basic Examples

```bash
# Minimal (default engine, current directory)
animaworks-tool machine run "detailed instruction"

# Specify engine and directory
animaworks-tool machine run -e cursor-agent "instruction" -d /path/to/workdir

# Background execution
animaworks-tool machine run --background "instruction" -d /path/to/workdir

# Custom timeout
animaworks-tool machine run -t 300 "instruction" -d /path/to/workdir
```

## Writing Good Instructions (Important)

Vague instructions lead to poor results. Always include:

1. **Goal** — What to accomplish
2. **Target files/modules** — What to modify
3. **Constraints** — Coding conventions, API compatibility, etc.
4. **Expected output** — Code, report, diff, etc.

### Pass Long Instructions via File

Instructions containing Bash special characters (`|`, `` ` ``, `$`) will cause shell errors
if passed directly. Write to a file first:

```bash
# Write instruction to file
cat > /tmp/instruction.txt << 'INSTRUCTION'
## Task: PR #2087 Code Review

| Aspect | Check |
|--------|-------|
| Correctness | Meets issue requirements |
| Maintainability | Readability, tests, SRP |

Target file: `app/Services/Movacal/MovacalApiClient.php`
INSTRUCTION

# Read from file and execute
animaworks-tool machine run "$(cat /tmp/instruction.txt)" -d /path/to/workdir
```

## Parallel Execution (`--background`)

Use `--background` to run multiple machines simultaneously.
Output streams in real-time to `state/cmd_output/`.

### 3-Parallel Review Example

```bash
# Launch 3 review perspectives in parallel
animaworks-tool machine run --background "Correctness review..." -d /path &
animaworks-tool machine run --background "Maintainability review..." -d /path &
animaworks-tool machine run --background "Consistency review..." -d /path &
wait

# Check results (Read files from state/cmd_output/)
```

## When to Use

| Scenario | Suitable? |
|----------|-----------|
| Multi-file code changes | YES |
| Bug investigation / root cause analysis | YES |
| Test code generation | YES |
| Refactoring | YES |
| Short questions | NO (answer yourself) |
| Work requiring memory/messaging | NO (do it yourself) |

## Notes

- Machine tools have NO access to AnimaWorks infrastructure (no memory, messaging, or org info)
- Rate limited (5 per session, 2 per heartbeat)
- Background output streams to `state/cmd_output/`, check with Read/Glob

Related Skills

x-search-tool

224
from xuiltul/animaworks

X (Twitter) search tool for keyword search and fetching tweets from a specified account. Use when: searching X for topics, reading a user timeline, or tracking trends and posts.

web-search-tool

224
from xuiltul/animaworks

Web search tool. Queries the public internet via the Brave Search API. Use when: researching current events, finding documentation, fact-checking, or fetching ranked search results.

transcribe-tool

224
from xuiltul/animaworks

Audio transcription tool. Converts audio files to text with Whisper and optional LLM post-processing. Use when: transcribing meetings, podcasts, or extracting text from recorded audio files.

tool-creator

224
from xuiltul/animaworks

Meta-skill for building AnimaWorks Python external tools: ExternalToolDispatcher, get_credential, and permissions. Use when: adding a module under core/tools, wrapping a Web API, or exposing commands via animaworks-tool.

slack-tool

224
from xuiltul/animaworks

Slack integration tool for send/receive messages, search, unreplied checks, channel listing, and emoji reactions. Use when: posting to Slack, listing channels, replying in threads, checking unreplied items, or adding reactions.

notion-tool

224
from xuiltul/animaworks

Notion integration tool for searching, reading, creating, and updating pages and databases via the API. Use when: editing Notion pages, adding database rows, or searching a workspace.

local-llm-tool

224
from xuiltul/animaworks

Local LLM execution tool for text generation and chat through Ollama or vLLM endpoints. Use when: running on-prem inference, calling a local GPU model, or summarizing with a self-hosted LLM.

google-calendar-tool

224
from xuiltul/animaworks

Google Calendar integration tool for listing and creating events via OAuth2 Calendar API access. Use when: checking upcoming events, creating appointments, or updating your schedule.

gmail-tool

224
from xuiltul/animaworks

Gmail integration tool for unread checks, reading bodies, and drafts via OAuth2 Gmail API access. Use when: reading inbox mail, fetching message bodies, writing drafts, or searching labeled mail.

github-tool

224
from xuiltul/animaworks

GitHub integration tool for listing and creating issues and PRs via the gh CLI wrapper. Use when: creating or listing issues or pull requests, or checking repository work on GitHub.

discord-tool

224
from xuiltul/animaworks

Discord integration tool for messaging, search, guild and channel listing, and reactions. Use when: posting to Discord, listing channels, searching messages, or adding reactions in guilds.

chatwork-tool

224
from xuiltul/animaworks

Chatwork integration tool for send/receive messages, search, unreplied checks, and room listing. Use when: posting to Chatwork, listing rooms, checking unreplied threads, searching messages, or handling mentions.