# Agent skills & updates

> Install jurniti's agent skills into Claude Code or Codex with jurniti skills install — the open SKILL.md format, bundled in the binary — and keep the CLI and skills current with jurniti upgrade.

Part of the jurniti developer docs — canonical page: https://www.jurniti.com/docs/agent-skills · full docs index: https://www.jurniti.com/docs/llms.txt

## Agent skills

jurniti ships its workflows as **Agent Skills** — the open `SKILL.md` format
your coding agent already understands — so your own Claude Code or Codex can
drive jurniti for you: provision agents, capture templates, fork them, run
swarms.

The skills are embedded in the `jurniti` binary itself — no network, no
separate registry, always exactly matching the CLI version you're running:

```sh
jurniti skills install            # Claude Code (~/.claude/skills)
jurniti skills install --target codex
jurniti skills install --dir <path>   # any agent that reads SKILL.md dirs
```

`--dir` points the install at any other harness's skills directory — the
format is the ecosystem-standard one, so any agent that loads `SKILL.md`
folders can use them.

## Staying current

The CLI checks for new releases **at most once a day** and prints a one-line
notice on stderr when one exists. The notice never appears in `--json` output,
in CI, in non-interactive shells, or when you opt out:

```sh
export JURNITI_NO_UPDATE_CHECK=1
```

Nothing is ever installed without your say-so. When you're ready:

```sh
jurniti upgrade
```

`upgrade` downloads the release, verifies its checksum **and** its minisign
signature against a key built into the binary (it refuses anything unsigned or
tampered), swaps the binary atomically, and then re-syncs any skills it
previously installed so their content matches the new version. Skills you've
modified yourself are never overwritten.

For agents and scripts:

```sh
jurniti upgrade --check --json
```

exits `0` whether you're up to date, an update exists, or the check couldn't
complete — the answer lives in the JSON (`update_available: true | false |
null`), so a skill or pipeline can run it unconditionally. The bundled skills
do exactly that at the start of a session and will ask *you* before ever
upgrading; an agent should never run `jurniti upgrade --yes` on its own.
