# Install Yaks

You are a coding agent, and your user asked you to set up Yaks. From now on, when you hit friction in your own tooling (a hook that blocks a legal command, a doc that names a flag that doesn't exist, a tool that fails silently) you will run `eris yak` and keep working. The report lands, deduplicated, in your team's Linear Triage.

## Recommended: the eris-yaks skill

The eris-yaks skill in the public eris repo carries this setup. Run this from the root of your user's project (the skills CLI needs Node.js 22.20 or later). It asks which agents to install the skill for; add `-a <agent>` (for example `-a claude-code`) and `-y` to answer without prompts.

```sh
npx skills add sibylline-labs/eris --skill eris-yaks
```

Then load the eris-yaks skill and follow it. If you can't run the skills CLI, use the manual steps below instead.

## Manual setup

Work through the steps in order. Each says what to run and what you should see. Two steps need your user in a browser; stop and ask them there.

### 1. Check for bun

eris is TypeScript that runs on bun. Check it's installed. If it isn't, ask your user to install it from https://bun.sh, then continue.

```sh
bun --version
```

Expect: A version number.

### 2. Run eris

Run eris straight from npm to confirm it works. Then add the same package globally with bun, so later sessions can call `eris` directly. If a global install isn't possible, run every `eris …` command below as `npx @sibylline-labs/eris@latest …` instead.

```sh
npx @sibylline-labs/eris@latest --version
bun add -g @sibylline-labs/eris
```

Expect: `eris` followed by a version.

### 3. Connect Linear (your user, in a browser)

Stop here and ask your user to open https://dash.sibylline.group, choose **Sign in with Linear**, and install the **Yaks** app into their Linear workspace when prompted (a Linear admin does this once per workspace). Wait until they confirm.

### 4. Create a CLI token (your user, in a browser)

Ask your user to open **Connect your CLI** in dash and create a token. Dash shows two values, `ERIS_YAKS_TOKEN` and `ERIS_YAKS_URL`. Ask them to add both to their shell profile themselves, or export them for this session. Do not ask them to paste the token into this chat. Then check that eris can see them.

```sh
eris yak --help
```

### 5. Send a test yak

Send one yak to prove the path end to end. A delivered yak prints `recorded: <id>`; ask your user to check their Linear Triage for the new `[Yak]` issue. A `WARN` line instead means it wasn't delivered, but the command still exits 0, because a yak never fails the task that filed it: the slug on that line names what to fix (usually the token or URL from the previous step).

```sh
eris yak suggest --summary "First yak from this repo" --body "Testing the Yaks pipeline end to end."
```

Expect: `recorded: <id>`

### 6. Teach every session to file

Add this block to the repo's `AGENTS.md` (and `CLAUDE.md` if the repo has one), or to your user's global agent instructions, so every future session knows when to file. Show your user the diff.

```markdown
## Yaks

When the tooling fights back, file a yak and keep working. A yak is a side channel: it never blocks the task.

- `eris yak issue`: something in the harness is wrong (a hook blocks a legal edit, a doc names a flag that doesn't exist, a command fails silently).
- `eris yak suggest`: something could be better, and nothing has to be broken (a flag, skill or rule you wished existed; a workaround you've hand-rolled more than once).
- `eris yak fatal`: the tooling broke and the task already stopped.

Each takes `--summary "<one line>"` and `--body "<what happened, what you expected>"`; add `--repro "<command>"` when one shows it. Filing is deduplicated, so a repeat adds weight to an existing issue. File in the turn you notice.
```

## Done

Tell your user what you set up, and that friction you hit from now on will appear in their Linear Triage as `[Yak]` issues.

Reference: `eris yak --help` · https://github.com/sibylline-labs/eris · support@sibylline.group · human version: https://yak.sibylline.group/install