跳到正文
cccskills
免费在 GitHub 公开中文介绍

odysseus

通过Codex管理Odysseus中的任务、日程、邮件、文档与记忆信息,并通过权限受限的API设置提醒、启动模型服务器及查看日志。

原文查看原文说明

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.

集成工具X (Twitter)
AI 评分100分/ 100查看安装方法

适用场景

  • 设置指定时间的提醒
  • 查看日程并添加预约
  • 阅读邮件并生成可编辑的回复草稿
  • 将偏好或文档保存到Odysseus
  • 排查Cookbook启动失败并重启

中文介绍

功能

通过Codex管理Odysseus中的任务、邮件、日历、记忆信息和文档。可以创建带截止时间的任务作为提醒,也可以将邮件回复草稿整理成可编辑的文档。在Cookbook中,可以启动或停止模型服务器,查看运行状态与日志,协助排查启动失败的原因。

适用场景

适合希望通过与Codex对话来登记日程和任务,或保存偏好及长期信息的用户。需要在Cookbook中启动模型,并根据日志调查失败原因时,也可以使用。

使用示例

  • “明天下午五点提醒我给牙医打电话。”
  • “查看收到的邮件,把回复草稿整理成可编辑的文档。”
  • “查看Cookbook启动失败的日志,调查失败原因。”

注意事项

需要连接地址ODYSSEUS_URL和Codex Agent令牌ODYSSEUS_API_TOKEN。操作范围由令牌权限决定。发送邮件需要用户明确指示及发送权限。指定时间的提醒会登记为带截止时间的任务,与日历事件区分。通知使用用户配置的通知渠道。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

客观评估

AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。

指令清晰度能否看出何时使用、做什么
A良好资料明确说明了数据操作和模型服务器管理的使用场景。
步骤具体性步骤、输入输出和示例是否具体
A良好资料提供了API路径、请求正文和辅助脚本执行示例。
安全性发送数据、删除文件、执行命令等是否有说明
A良好要求检查权限并遵守访问限制,发送邮件必须有明确指示。
安装难易度所需工具和 API 密钥是否少且有说明
A良好说明了ODYSSEUS_URL的配置及ODYSSEUS_API_TOKEN的创建和设置方法。

总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月21日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(1)

  • SKILL.md9.9 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

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.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

action-evidence-synthesis

免费有简介AI 评分 100分

核对分散在消息、会议记录和文档中的信息,整理附有来源的决定、任务、依赖关系与风险,区分事实和推测,形成进度报告或决策参考资料。

  • 从会议记录生成附来源的任务清单
  • 根据对话和文档汇总进度
  • 结合依赖关系与障碍评估可行性
odysseus-dev/odysseus9.4万2026年10月21日 更新

artifact-completion

免费有简介AI 评分 100分

尽早在指定位置创建文件、报告等成果的完整初版,再基于实物逐步修改,检查格式、内容和可用状态后,才报告工作完成。

  • 创建包含全部必要章节的报告
  • 将成果保存到指定位置
  • 确认生成文件能否正常打开
odysseus-dev/odysseus9.4万2026年10月21日 更新

developer-docs

免费有简介AI 评分 100分

查阅库、框架和API的官方资料,将目标版本的用法用于解答或代码实现。区分已确认的事实与推断,并在修改代码后进行验证。

  • 确认API和选项的具体规定
  • 按指定版本实现功能
  • 将官方资料应用于现有项目
odysseus-dev/odysseus9.4万2026年10月21日 更新

multimodal-evidence

免费有简介AI 评分 90分

从图像、文档和视频中提取所需文字、数值及事件顺序,结合页码或时间核实内容,减少重复查看,并整理成能够追溯依据的回答。

  • 提取并核实文档中的数值
  • 按时间整理视频事件
  • 读取并核实图像中的标签
odysseus-dev/odysseus9.4万2026年10月21日 更新

odysseus

免费有简介AI 评分 100分

通过Claude Code操作Odysseus的任务、邮件、日程、记忆和文档,并通过设有权限范围的API启动模型服务、查看日志或停止服务。

  • 设置指定时间的提醒
  • 阅读邮件并起草回复
  • 保存日程、偏好和文档
odysseus-dev/odysseus9.4万2026年10月21日 更新

reviewable-external-draft

免费有简介AI 评分 90分

核对内部消息和文档,为客户、合作方或管理层起草报告。确认最新数字与承诺,标明未解决的分歧,排除机密信息,并提供供人工审核的草稿。

  • 根据内部记录起草客户进度报告
  • 使用更正后的数字向合作方汇报
  • 为管理层起草注明不确定性的报告
odysseus-dev/odysseus9.4万2026年10月21日 更新

查看 odysseus-dev 的全部技能

报告此技能的问题