-
Notifications
You must be signed in to change notification settings - Fork 0
Add Tripsy and Trakt CLI skills #21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | ||
| ``` | ||
|
|
||
| - 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" | ||
|
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 | ||
|
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 | ||
|
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. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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." |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.