Skip to content
cccskills
FreePublished on GitHubEnglish overview

odysseus

Use Codex to manage Odysseus todos, calendars, memory, and documents, and read or draft email. Through its permission-scoped API, the skill also supports reminders and launching, inspecting, or stopping Cookbook model servers.

OriginalShow the original description

Use when the user asks Codex to read or write Odysseus data (todos, email, calendar, memory, documents) or to launch/monitor/stop a Cookbook model-serve task through the scoped Codex Agent API. Requires ODYSSEUS_URL and ODYSSEUS_API_TOKEN.

Works withX (Twitter)
AI rating100/ 100See how to install

Good for

  • Create a timed reminder as a todo
  • Check calendar events and add appointments
  • Read email and prepare an editable reply draft
  • Save preferences and documents in Odysseus
  • Inspect logs and restart a failing Cookbook model server

Overview

What it does

Use Codex to work with tasks, email, calendars, memory, and documents in Odysseus. The skill creates reminders as tasks with due dates and prepares email replies in editable documents. In Cookbook, it helps start and stop model servers, check their running status, and inspect logs to investigate launch failures.

When it helps

Use it to add appointments or tasks through a conversation with Codex, or to save preferences and information you want to keep over time. It also helps when you want to launch a model in Cookbook and examine logs to understand why it failed.

Example requests

  • “Remind me to call the dentist tomorrow at 5 p.m.”
  • “Check my incoming email and put a reply draft in an editable document.”
  • “Check the logs for the failed Cookbook launch and investigate the cause.”

Notes

You need ODYSSEUS_URL for the connection address and ODYSSEUS_API_TOKEN for a Codex Agent token. Available actions depend on the token’s permissions. Sending email requires an explicit instruction and permission to send. Timed reminders are tasks with due dates, distinct from calendar events. Notifications use the destination configured by the user.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodThe material explicitly identifies when to manage data and model servers.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodAPI paths, request bodies, and helper script examples are provided.
SafetyAre sending data, deleting files, and running commands disclosed?
AGoodIt requires permission checks, respect for access restrictions, and explicit instructions before sending email.
Easy setupDoes it need few tools or API keys, and are they documented?
AGoodConfiguration instructions cover ODYSSEUS_URL and how to create and expose ODYSSEUS_API_TOKEN.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 21, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md9.9 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Odysseus

Use this skill when a user asks to interact with Odysseus from Codex.

Configuration

Expect these environment variables:

  • ODYSSEUS_URL: Base URL for the user's Odysseus instance, for example http://127.0.0.1:7000.
  • ODYSSEUS_API_TOKEN: Scoped API token created in Odysseus Settings > Integrations > Add Integration > Codex Agent.

If either value is missing, do not guess credentials. Tell the user to create a Codex Agent token in Odysseus Settings and expose both values to the terminal session.

When to use what

  • Reminder ("remind me at 5pm to do X") → TODO with due_date. The due_date IS the reminder — it fires a notification automatically via the user's configured channel (browser/email/ntfy). Do NOT create a calendar event for a reminder. Creating a calendar event named "Reminder" does NOT trigger a notification — it's just a time block on the calendar.
  • Calendar event ("meeting at 3pm", "dentist Tuesday 10am") → calendar event. Use for scheduled time blocks, meetings, appointments, recurring schedules. These show up on the calendar grid; reminders for them are configured separately in Odysseus settings.
  • Note / freeform info ("note that the wifi password is ...") → memory or todo without a due_date (depending on whether it's a fact about the user or an action item).
  • Persistent fact / preference about the user → memory.

If the user says "reminder" + a time, default to TODO with due_date. Only switch to calendar if the user explicitly says "calendar", "event", "meeting", "appointment", or describes a time range.

Safety

  • All Odysseus data access MUST go through the scoped HTTP API under /api/codex/*.
  • Check /api/codex/capabilities before using a tool surface.
  • Treat 403 as an intentional Settings restriction. Do not work around it.
  • Do not use SSH, Docker, direct Python imports, SQLite queries, MCP internals, browser cookies, or local files to read/write Odysseus user data.
  • Do not call helpers like do_manage_notes, email MCP internals, or database sessions directly for user data, even if shell access exists.
  • Never send email directly unless the user explicitly asks to send and the token has a send-capable scope.
  • Keep actions scoped to the token owner.

Todos

The Codex API supports todos/checklists:

  • GET /api/codex/todos
  • POST /api/codex/todos

Use the bundled helper script when available:

python3 integrations/codex/scripts/odysseus_api.py capabilities
python3 integrations/codex/scripts/odysseus_api.py todos list
python3 integrations/codex/scripts/odysseus_api.py todos add "Follow up"

Supported todo actions are list, add, update, delete, and toggle_item.

Reminders (todos with a due date) — the backend parses natural language. Send due_date in the body via the generic POST so the time becomes a structured reminder, NOT a literal substring inside the title. The todos add TITLE shortcut only sets the title, so use the POST form for anything with a time:

python3 integrations/codex/scripts/odysseus_api.py POST /api/codex/todos '{"action":"add","title":"Call dentist","due_date":"tomorrow at 5pm"}'

The backend accepts both ISO timestamps and natural language like "tomorrow 5pm", "next Monday 9am", "in 2 hours". It anchors to the user's timezone.

Email

The Codex API supports scoped email reads:

  • GET /api/codex/emails?folder=INBOX&limit=10&offset=0&filter=all
  • GET /api/codex/emails/{uid}?folder=INBOX

Use the bundled helper script when available:

python3 integrations/codex/scripts/odysseus_api.py emails list 5
python3 integrations/codex/scripts/odysseus_api.py emails read UID

If /api/codex/capabilities does not show email.read: true, do not inspect email. Ask the user to enable Email read in the Codex Agent settings.

Memory

  • GET /api/codex/memory — list memories for the token owner.
  • POST /api/codex/memory — body {"text": "...", "category": "fact", "source": "user", "session_id": null}. Requires memory:write.
  • DELETE /api/codex/memory/{memory_id} — remove a memory entry. Requires memory:write.
python3 integrations/codex/scripts/odysseus_api.py GET /api/codex/memory
python3 integrations/codex/scripts/odysseus_api.py POST /api/codex/memory '{"text":"User prefers SI units","category":"preference"}'

Calendar

  • GET /api/codex/calendar/events?start=ISO&end=ISO — list events in window.
  • POST /api/codex/calendar/events — body matches EventCreate (summary, dtstart, dtend, all_day, description, location, calendar_href, rrule, color). Requires calendar:write.
  • DELETE /api/codex/calendar/events/{uid} — delete event by uid (the value returned in the POST response). Requires calendar:write.

Documents

  • GET /api/codex/documents?search=...&limit=50 — paginated library.
  • GET /api/codex/documents/{doc_id} — fetch one document.
  • POST /api/codex/documents — body {"session_id": "...", "title": "...", "content": "...", "language": "markdown"}. Requires documents:write.
  • DELETE /api/codex/documents/{doc_id} — delete a document. Requires documents:write.

Email draft + send

  • Prefer POST /api/codex/emails/draft-document for Codex-written email replies. It creates an editable Odysseus Document with language: "email" and does not touch IMAP/send.
  • POST /api/codex/emails/draft — body matches SendEmailRequest (to, cc, bcc, subject, body, body_html, attachments, account_id, in_reply_to, references). Requires email:draft (or email:send).
  • POST /api/codex/emails/send — same body. Requires email:send. Never send without explicit user instruction.

Cookbook serve (debug a failing model launch)

The Cookbook surface lets you reproduce what a human would do in Odysseus → Cookbook: read which serves are running, tail their tmux output to see why they crashed, edit the launch command, relaunch, kill a stuck one. Use this when the user is debugging a model server that won't come up (compute-capability errors, OOM, missing kernels, wrong attention backend, etc.).

  • GET /api/codex/cookbook/tasks — list active serve/download/install tasks (sessionId, type, status, repo_id, remoteHost, payload._cmd). Requires cookbook:read.
  • GET /api/codex/cookbook/servers — list configured servers (name, host, port, env type + path, model dirs). Requires cookbook:read.
  • GET /api/codex/cookbook/cached?host=<NAME> — list models already cached on the named server (HF cache + Ollama + extra modelDirs). Call BEFORE serve to see what's already on disk. Requires cookbook:read.
  • GET /api/codex/cookbook/presets — list saved serve presets (model + host + port + cmd). The user's saved preset usually has a working cmd — try preset NAME before composing your own. Requires cookbook:read.
  • GET /api/codex/cookbook/output/{session_id}?tail=400 — read the last N lines of the task's persistent log file (preferred) or tmux pane (fallback). The log file persists across vllm crashes, so this returns the actual Python traceback even after the bash prompt + neofetch banner overwrites the pane. Default tail=400. Requires cookbook:read.
  • POST /api/codex/cookbook/serve — launch a serve task. Body matches ServeRequest: { repo_id, cmd, remote_host?, ssh_port?, env_prefix?, gpus?, platform? }. The cmd is validated: leading binary must be vllm/python3/sglang/llama-server/ollama/node/npx. NEVER prefix with cd …, source …, or chain with &&/||/;/$(...) — the validator rejects shell metacharacters. The venv activation (env_prefix) is added automatically from the host's saved settings, so pass the bare binary + args. Requires cookbook:launch.
  • POST /api/codex/cookbook/preset/{name} — launch a saved preset by name. Reuses the working cmd + host the user already saved. Requires cookbook:launch.
  • POST /api/codex/cookbook/adopt — register an externally-launched tmux session into cookbook tracking. Body: { tmux_session, model, host?, port? }. Use this when serve_model rejected a cmd and you fell back to direct ssh+tmux — without adoption, the session is invisible to the UI. Requires cookbook:launch.
  • POST /api/codex/cookbook/stop/{session_id} — kill the tmux session. Requires cookbook:launch.
python3 ~/plugins/odysseus/scripts/odysseus_api.py cookbook tasks
python3 ~/plugins/odysseus/scripts/odysseus_api.py cookbook output serve-abc12345 400
python3 ~/plugins/odysseus/scripts/odysseus_api.py cookbook stop serve-abc12345
python3 ~/plugins/odysseus/scripts/odysseus_api.py cookbook serve \
  /mnt/HADES/models/Qwen3.5-397B-A17B-AWQ \
  "vllm serve /mnt/HADES/models/Qwen3.5-397B-A17B-AWQ --host 0.0.0.0 --port 8001 --tensor-parallel-size 8 --max-model-len 262144 --gpu-memory-utilization 0.90 --dtype auto --max-num-seqs 8 --trust-remote-code --enable-expert-parallel --enable-auto-tool-choice --tool-call-parser qwen3_coder --reasoning-parser qwen3" \
  pewds@192.168.1.12

Debug loop pattern: tasks → output SID 600 (find root cause; request larger tail if it references "above") → stop SID → serve repo "new cmd" → wait ~20s → output on the new sessionId.

Hard limits this surface enforces:

  • cookbook serve cmd allowlist + shell-metacharacter rejection.
  • cookbook stop requires sessionIds matching [a-zA-Z0-9_-]+.
  • Agent CAN spawn GPU-pinning long-lived processes — always cookbook stop your previous attempt before relaunching.

Forbidden Bypass Pattern

If you are about to reach the Odysseus host/container, import app internals, query the database, or call MCP helper modules directly, stop. Those paths bypass Odysseus Settings and token scopes. Ask the user to enable the relevant Codex Agent tool toggle instead.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

action-evidence-synthesis

FreeSummaryAI rating 100

Turn scattered messages, meeting notes, and documents into sourced action lists and status briefs. The skill reconciles updates, separates facts from tentative inferences, and highlights decisions, dependencies, risks, and unanswered questions.

  • Build a sourced action list from meeting notes
  • Combine messages and documents into a status brief
  • Assess feasibility using dependencies and blockers
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

artifact-completion

FreeSummaryAI rating 100

Create a complete first version of a requested file or other deliverable early, then refine it and check its format, required content, location, and usability before reporting the work as finished.

  • Creating a report with all required sections
  • Saving a deliverable in a specified location
  • Checking that a generated file opens correctly
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

developer-docs

FreeSummaryAI rating 100

Find official documentation for a library, framework, or API and apply it to the task at hand. Check the relevant version, distinguish documented facts from assumptions, and verify code changes with a focused test or concrete command.

  • Checking how an API or option works
  • Implementing behavior for a specific version
  • Applying official guidance to an existing project
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

multimodal-evidence

FreeSummaryAI rating 90

Extract and verify text, numbers, objects, and sequences from images, documents, and video. Record where each finding appears, check exact labels and values, and build answers whose supporting evidence can be traced back to the input.

  • Extracting and checking numbers in documents
  • Tracing video events to timestamps
  • Reading and verifying labels in images
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

odysseus

FreeSummaryAI rating 100

Use Claude Code to manage Odysseus tasks, email, calendar events, stored facts, and documents through a permission-scoped API. You can also start, inspect logs for, and stop Cookbook model servers using the access granted by your token.

  • Creating a task with a timed reminder
  • Reading email and preparing a reply draft
  • Saving calendar events, preferences, and documents
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

reviewable-external-draft

FreeSummaryAI rating 90

Prepare reviewable updates for clients, partners, or leadership from internal messages and documents. The skill checks current figures, dates, and commitments, flags unresolved discrepancies, and excludes private internal details from the draft.

  • Draft a client progress update from internal records
  • Check corrected figures before preparing a partner update
  • Prepare a leadership brief with uncertainties flagged
odysseus-dev/odysseus94.2KUpdated Oct 22, 2026

See all skills by odysseus-dev

Report a problem with this skill