Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .config/agent-skills/skills/trakt-cli/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
---
name: trakt-cli
description: Work with Trakt.tv through the local trakt-cli. Use when Codex needs to verify Trakt access, inspect movies, shows, calendars, recommendations, watchlists, ratings, history, playback, or carefully update authenticated Trakt account state from the command line.
---

# Trakt CLI

## Core Rules

- Use the local CLI directly. Prefer `trakt-cli` from `PATH`.
- These examples target the `trakt-cli` command surface that exposes `configure`, `auth`, `me`, `movies`, `shows`, `recommendations`, `calendars`, and `sync` in `trakt-cli --help`. If a host has a different Trakt CLI package with commands such as `search`, `history`, `watchlist`, `calendar`, and `progress`, treat it as a different supported command surface: inspect its help and translate the workflow instead of applying these examples verbatim.
- Prove access with a live read before claiming Trakt works:

```bash
trakt-cli --help
trakt-cli me --json
trakt-cli sync watchlist --limit 3 --json
Comment thread
pevd950 marked this conversation as resolved.
```

- Personalized commands require `trakt-cli configure` and `trakt-cli auth`.
- Prefer `--json` for agent work.
- Do not add, remove, rate, check in, scrobble, or mutate Trakt items unless the user explicitly asks for that exact change.
- Resolve titles to a specific Trakt item before any write.

## Setup

Create a Trakt API app at:

```text
https://trakt.tv/oauth/applications/new
```

Use a descriptive app name such as `<host> Codex` or `Local Agent CLI`. For a local/headless CLI flow, use a non-web redirect URI such as:

```text
urn:ietf:wg:oauth:2.0:oob
```

This is the out-of-band PIN-style OAuth flow used by the CLI; after `trakt-cli auth`, follow the printed browser/PIN instructions.

Then configure and authenticate:

```bash
trakt-cli configure --client-id "$TRAKT_CLIENT_ID" --client-secret "$TRAKT_CLIENT_SECRET"
Comment thread
pevd950 marked this conversation as resolved.
trakt-cli auth
```

## Common Reads

Search and inspect:

```bash
trakt-cli search text movie "The Matrix" --json
trakt-cli search text show "Severance" --json
trakt-cli movies get "the-matrix-1999" --extended full --json
trakt-cli shows get "severance" --extended full --json
Comment thread
pevd950 marked this conversation as resolved.
```

Browse:

```bash
trakt-cli movies trending --json
trakt-cli shows trending --json
trakt-cli calendars my-shows --json
trakt-cli calendars all-new-shows --json
```

Personal data:

```bash
trakt-cli sync watchlist --json
trakt-cli recommendations movies --json
trakt-cli sync history --type episodes --json
```

Note: on some `trakt-cli` releases, `sync playback` and `sync last-activities` return `HTTP 405 Method Not Allowed`; avoid using them as health checks until the CLI route is fixed upstream.

## Mutation Guardrails

- Search first when the user gives a title, then pick the matching type/year before writing.
- Use the smallest JSON payload that matches the target item type.
- For destructive operations such as remove, reset, clear, unlike, unfollow, or reorder, state exactly what will change before running the command.

Example watchlist write after resolving a movie ID:

```bash
trakt-cli sync add-watchlist --items '{"movies":[{"ids":{"trakt":603}}]}' --json
Comment thread
pevd950 marked this conversation as resolved.
```

## Response Style

- Mention the resolved title, media type, and year when available.
- Summarize the result instead of dumping raw JSON unless requested.
- For writes, state exactly what changed.
4 changes: 4 additions & 0 deletions .config/agent-skills/skills/trakt-cli/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Trakt CLI"
short_description: "Work with Trakt.tv data from the local CLI."
default_prompt: "Use the supported Trakt CLI command surface to inspect movies, shows, watchlists, calendars, recommendations, ratings, history, or playback."
79 changes: 79 additions & 0 deletions .config/agent-skills/skills/tripsy-cli/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
name: tripsy-cli
description: Work with Tripsy travel data through the local Tripsy CLI. Use when Codex needs to verify Tripsy access, inspect trips, list or update trip activities, lodging, transport, expenses, collaborators, inbox items, documents, or plan/write Tripsy itineraries from the command line instead of relying on the remote Tripsy MCP.
---

# Tripsy CLI

## Core Rules

- Use the local CLI directly. Prefer `$HOME/.local/bin/tripsy`; if unavailable, check `command -v tripsy`.
- Prove access with a live read before claiming Tripsy works:

```bash
TRIPSY_BIN="${HOME}/.local/bin/tripsy"
if [ ! -x "$TRIPSY_BIN" ]; then TRIPSY_BIN="$(command -v tripsy)"; fi
"$TRIPSY_BIN" doctor
"$TRIPSY_BIN" auth status --json
```

- Treat the remote Tripsy MCP as optional. Prefer the CLI when the remote MCP is configured but does not expose tools or has session/auth instability.
- Prefer `--json` for agent work. Use `--quiet` when you need raw JSON data only.
- Do not create, update, delete, upload, or attach Tripsy resources unless the user asked for that exact mutation.
- Tripsy stores the CLI token in Keychain by default. If a scheduled/noninteractive run loses auth, check `"$TRIPSY_BIN" doctor` and ask the user to re-run CLI auth rather than inventing a token.

## Common Reads

Current user:

```bash
"$TRIPSY_BIN" me show --json
```

Trips:

```bash
"$TRIPSY_BIN" trips list --json
"$TRIPSY_BIN" trips following --json
"$TRIPSY_BIN" trips show <trip-id> --json
```

Trip details:

```bash
"$TRIPSY_BIN" activities list --trip <trip-id> --json
"$TRIPSY_BIN" hostings list --trip <trip-id> --json
"$TRIPSY_BIN" transportations list --trip <trip-id> --json
"$TRIPSY_BIN" expenses list --trip <trip-id> --json
"$TRIPSY_BIN" collaborators list --trip <trip-id> --json
```

Agent command catalog:

```bash
"$TRIPSY_BIN" commands --json
"$TRIPSY_BIN" trips --help --agent
```

The list response is an object with `results`, `count`, `next`, and `previous`; do not assume a top-level array.

## Travel Signal Use

For planning or assistant-summary workflows:

- Use Tripsy as bounded travel context, not as a full itinerary dump.
- Surface travel only when it changes the day or week: active/upcoming dated trips, inbox items needing handling, lodging/flight/document gaps, or near-term planning decisions.
- Prefer trip names, dates, destination/timezone, collaborator count, and the next concrete missing piece.
- If Tripsy is unavailable, mention it as a data gap only when travel context materially matters.

## Itinerary Mutation Guardrails

When the user asks to create or refine an itinerary:

- Create one Tripsy item per actual stop, reservation, meal, tour, or activity; do not combine a whole day into one activity.
- Use exact UTC ISO-8601 datetimes with a trailing `Z` for timed items, such as `2026-06-01T14:00:00Z`.
- Set the local IANA `timezone` field separately for display/localization only; do not treat it as a second authoritative time that should be converted again.
- Set `latitude` and `longitude` for location-based activities, lodging, and transport when available.
- Use `hostings` for lodging, `transportations` for point-to-point movement, and `activities` for stops/events/meals.
- Choose the most specific supported category slug. If unsure, run command help with `--agent` before mutating.
- Prefer a direct `images.unsplash.com/photo-...` URL for trip covers, not an Unsplash page URL.
4 changes: 4 additions & 0 deletions .config/agent-skills/skills/tripsy-cli/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Tripsy CLI"
short_description: "Work with Tripsy travel data from the local CLI."
default_prompt: "Use Tripsy CLI to inspect trips, travel plans, itinerary items, or travel inbox/document context."
Loading