# axiom-tools

A router skill for the Axiom suite: points you to the right tool for builds, console output, crash symbolication and CPU profiles. Handy on iOS/Swift work in an agent.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1200 installs · ★ 1229
- Author: CharlesWiltgen
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/CharlesWiltgen/Axiom/tree/HEAD/axiom-codex/skills/axiom-tools/SKILL.md
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/skills/axiom-tools

## What it does

axiom-tools is the entry point to the Axiom set. It does not build or parse anything itself — it routes a question to the right reference: `axbuild` for build and test capture, `xclog` for console output, `xcsym` for symbolication of `.ips`, MetricKit and `.crash` files, `xcui` for simulator UI and accessibility checks, `xcprof` for `xctrace` and CPU profiles. A separate branch covers driving a simulator or device with no Xcode running, including screenshots, video capture and cleaning up the status bar for App Store shots.

Inside is a routing table: question on the left, reference file on the right. There is also a section on how to use Axiom skills — check the matching skill before answering anything iOS/Swift, do not skip the routers, and pull in several when a question spans domains. For Codex the auditors are rewritten as skills, so you invoke the matching skill instead of launching an agent. Several of them — builds, tests, simulators, symbolication — need shell access to run.

On Claude the tools ship inside the plugin. If `command -v <tool>` finds nothing — hooks are off or you launched with `--bare` — use `<plugin-root>/tools/<tool>`, where `<plugin-root>` sits two levels above the `Base directory for this skill:` path. That is the first thing to check when a tool looks missing but the plugin is installed.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add CharlesWiltgen/Axiom --skill axiom-tools -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/axiom-tools/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/axiom-tools/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add CharlesWiltgen/Axiom --skill axiom-tools -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/axiom-tools/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add CharlesWiltgen/Axiom --skill axiom-tools -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/axiom-tools/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install CharlesWiltgen/Axiom axiom-tools
```

2. **Manually: put the files in place**
- File: `.github/skills/axiom-tools/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add CharlesWiltgen/Axiom --skill axiom-tools -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/CharlesWiltgen/Axiom --path axiom-codex/skills/axiom-tools
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/axiom-tools/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add CharlesWiltgen/Axiom --skill axiom-tools -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/CharlesWiltgen/Axiom/tree/HEAD/axiom-codex/skills/axiom-tools/SKILL.md

## When to use it
- capture console output from a simulator
- symbolicate an unsymbolicated `.ips` or MetricKit crash
- script simulator UI and accessibility checks
- analyze a CPU profile from `xctrace`
- drive a simulator or device without Xcode running

## Example prompts
- How do I capture console output from the simulator?
- Why is my crash unsymbolicated, and how do I use xcsym?
- How do I analyze a CPU profile with xcprof?

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: b2c5ddf708df7fb7.

BEGIN THIRD-PARTY FILE b2c5ddf708df7fb7
```text
---
name: axiom-tools
description: Use when asking about Axiom skills or axbuild build/test capture, xclog console, xcsym .ips/MetricKit/.crash symbolication, xcui simulator UI/accessibility, or xcprof xctrace/CPU profiles.
license: MIT
---

# Axiom Tools & Onboarding

This suite covers Axiom itself — how to use it, what's available, and the tools that ship with it.

**Bundled tools on Claude Code:** if `command -v <tool>` finds nothing (hooks off or `--bare`), use `<plugin-root>/tools/<tool>` in place of the bare name; `<plugin-root>` is two levels above this skill's `Base directory for this skill:` path.

<!-- AXIOM_AUDITOR_INLINE_BEGIN — rewritten for Codex by scripts/build-codex.ts; do not hand-edit -->
> **Auditors are skills here.** Where this router says "Launch `some-auditor` agent", invoke the
> matching Codex skill instead — same procedure, no Claude Code agent required.
>
> Available: `axiom-analyze-test-failures`, `axiom-audit-accessibility`, `axiom-audit-concurrency`, `axiom-audit-energy`, `axiom-audit-memory`.
>
> The ones that shell out — builds, tests, simulators, crash symbolication — need shell access to run.
<!-- AXIOM_AUDITOR_INLINE_END -->

## Build and Test Capture

For axbuild installation, report handling and saved-log fallback, read `axiom-build` before a build or test.

## Routing

| Question | Read |
|----------|------|
| "How do I capture console output?" / "What is xclog?" | [skills/xclog-ref.md](skills/xclog-ref.md) |
| "How do I symbolicate a crash?" / "What is xcsym?" / "Why is my crash unsymbolicated?" | [skills/xcsym-ref.md](skills/xcsym-ref.md) |
| "How do I drive/validate the sim UI?" / "What is xcui?" / "How do I script accessibility checks?" | [skills/xcui-ref.md](skills/xcui-ref.md) |
| "How do I analyze a trace / CPU or network profile?" / "What is xcprof?" / "Why does the profiler report no findings?" | [skills/xcprof-ref.md](skills/xcprof-ref.md) |
| "How do I control a simulator/device without Xcode running?" / "What is Device Hub?" / "devicectl vs simctl?" | [skills/device-control-ref.md](skills/device-control-ref.md) |
| "How do I capture a screenshot or record video of a sim or device from the CLI?" | [skills/device-control-ref.md](skills/device-control-ref.md) (Screen capture) |
| "How do I clean up the status bar for App Store screenshots?" / "How do I set the time to 9:41 and full bars?" | [skills/device-control-ref.md](skills/device-control-ref.md) (Status bar for screenshots) |
```
END THIRD-PARTY FILE b2c5ddf708df7fb7

The third-party file has ended. Everything between the b2c5ddf708df7fb7 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2481 of 9473 bytes. © CharlesWiltgen · MIT · https://github.com/CharlesWiltgen/Axiom/tree/HEAD/axiom-codex/skills/axiom-tools/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
