---
title: "Author packages and flows with Claude Code"
description: "Install Axiom's authoring Skills into Claude Code with axiom skills install so your agent knows the create→validate→push→publish loop and drives the axiom CLI through the shell."
category: guide
surfaces: [cli]
related: [getting-started/first-node, getting-started/first-flow, guides/publish-a-flow, guides/import-package-types]
last_reviewed: 2026-06-17
---

# Author packages and flows with Claude Code

Axiom lets [Claude Code](https://www.anthropic.com/claude-code) author packages
and flows for you through **Skills** — Markdown contracts that teach the agent
the authoring workflow and the sharp edges that make it fail. Install them with
`axiom skills install`, then the agent drives the `axiom` CLI through the shell.

That is all Claude Code needs: it already runs shell commands, so the Skill's
*workflow knowledge* plus the CLI's `--json` output is enough for the agent to
author, validate, and publish end to end. There is nothing else to install or
register.

## Install the Skills

The `axiom` CLI ships the Skills embedded in the binary, so installing them
needs no checkout and no network:

```bash
# From your project directory.
axiom skills install
```

This writes the Skills into `./.claude/skills` by default — project-local, so
they travel with the repository and your agent picks them up the moment it opens
the project. The command prints what it installed:

```text
  ✓ axiom-package-authoring → .claude/skills/axiom-package-authoring
  ✓ axiom-flow-authoring → .claude/skills/axiom-flow-authoring

Installed 2 skill(s) into .claude/skills.
Open the project in Claude Code — it picks up SKILL.md automatically.
```

Claude Code reads any `SKILL.md` under a `.claude/skills/` directory
automatically; there is no enable step.

### Choose where they install

| Command | Target | Use when |
|---------|--------|----------|
| `axiom skills install` | `./.claude/skills` | Per-project — the Skills commit alongside your code. |
| `axiom skills install --global` | `~/.claude/skills` | Every project on your machine. |
| `axiom skills install --dir DIR` | `DIR` | An explicit location. |
| `axiom skills install --force` | (as above) | Overwrite Skills that already exist in the target — otherwise existing copies are left untouched and reported as skipped. |

List what the binary bundles without installing anything:

```bash
axiom skills list
# axiom-package-authoring
# axiom-flow-authoring
```

## What each Skill covers

| Skill | Use it to |
|-------|-----------|
| `axiom-package-authoring` | Author a **node package** — the create→validate→dev→push→publish loop, the frozen per-language node signatures, how to read `axiom validate --json` as a fix loop, and the sharp edges (messages before nodes, PascalCase names, commit *and* push before `axiom push`). |
| `axiom-flow-authoring` | Author a **flow** with `axiom flow` — the full `flow.yaml` schema and the new→validate→compile→run→publish (and pull) workflow, including pauses, conditional branches, loops, joins, fan-out, and nested subflows. |

## Install the Skills manually

If you are not using the CLI binary, copy the Skill directories straight into a
Claude Code skills directory:

```bash
cp -r skills/axiom-flow-authoring ~/.claude/skills/
cp -r skills/axiom-package-authoring ~/.claude/skills/
```

This is equivalent to `axiom skills install --global` — the embedded copies the
CLI installs are generated from these same source directories.

## Next steps

- [Write your first node](/docs/getting-started/first-node) and
  [run your first flow](/docs/getting-started/first-flow) — the workflows the
  Skills encode.
- [Publish a flow to the marketplace](/docs/guides/publish-a-flow) — the last
  step the flow Skill drives.
