> ## Documentation Index
> Fetch the complete documentation index at: https://docs.joystream.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# jstm session

> Pin catalog skills to a builder session so Joyvis builds around them.

Pinning a skill to a builder session tells Joyvis to keep that skill in scope while drafting. It's the scripted equivalent of choosing a skill from the `/` picker inside the plan chat.

The session id is the one `jstm agent plan` prints on exit, or one from `jstm agent plan list`.

## `session skills list`

```bash theme={null}
jstm session skills list 5f3a5c81-2d44-4e0b-9a17-0c9d3b7e9b21
jstm session skills list 5f3a5c81-2d44-4e0b-9a17-0c9d3b7e9b21 --json
```

## `session skills pin`

Pin a catalog skill to a session. Idempotent — pinning the same skill twice is safe.

```bash theme={null}
jstm session skills pin 5f3a5c81-2d44-4e0b-9a17-0c9d3b7e9b21 google-calendar-read
```

## `session skills unpin`

Remove a pinned skill. Also idempotent.

```bash theme={null}
jstm session skills unpin 5f3a5c81-2d44-4e0b-9a17-0c9d3b7e9b21 google-calendar-read
```

## Errors

If the session isn't yours, you get a `404`. If the skill isn't in the catalog, you get a `422` naming the offending skill.

With `--json`, both print a parseable object on stdout rather than a formatted panel:

```json theme={null}
{ "status": 422, "detail": { "message": "…", "skill": "google-calendar-read" } }
```

## See also

* [`jstm agent plan`](/cli/agent-plan) — the interactive equivalent.
* [`jstm skills`](/cli/skills) — find skill names to pin.
