본문으로 건너뛰기
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이 필요합니다. 작업 범위는 토큰 권한에 따릅니다. 메일 전송에는 명시적인 지시와 전송 권한이 필요합니다. 시간 알림은 기한이 있는 작업으로 등록하며 캘린더 일정과 구분합니다. 알림은 사용자가 설정한 수신 경로로 전달됩니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

객관 평가

AI가 SKILL.md의 내용만을 근거로 4가지 관점에서 판정했습니다. 스타 수나 인기도는 판정에 넣지 않았습니다.

지시의 명확성언제 쓰고 무엇을 하는지 알 수 있는가
A양호데이터 작업과 모델 서버 관리의 사용 상황이 명시되어 있습니다.
절차의 구체성절차·입출력·예시가 구체적으로 적혀 있는가
A양호API 경로, 요청 본문, 보조 스크립트 실행 예시가 제시되어 있습니다.
안전성전송·삭제·명령 실행 등을 명시하고 있는가
A양호권한 확인과 접근 제한 준수를 요구하며 메일 전송에는 명시적 지시가 필요합니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
A양호ODYSSEUS_URL 설정과 ODYSSEUS_API_TOKEN 생성 및 설정 방법이 설명되어 있습니다.

총점은 각 항목을 A=25점, B=15점, C=5점으로 더한 값입니다. 2026년 10월 21일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(1)

  • SKILL.md9.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고