# Odysseus Data Access

Reads and writes Odysseus todos, mail, calendar and documents via the Claude Agent API.

- Repository: https://github.com/odysseus-dev/odysseus (94881 stars)
- Category: AI and agents
- License: AGPL-3.0
- Last updated: 2026-11-01
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add odysseus-dev/odysseus --skill odysseus -g -a claude-code -y`
Codex: `npx skills add odysseus-dev/odysseus --skill odysseus -g -a codex -y`
Cursor: `npx skills add odysseus-dev/odysseus --skill odysseus -g -a cursor -y`
Gemini CLI: `npx skills add odysseus-dev/odysseus --skill odysseus -g -a gemini-cli -y`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Odysseus

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

## 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 > Claude Agent.

If either value is missing, do not guess credentials. Tell the user to create a Claude 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

The rest: https://github.com/odysseus-dev/odysseus/blob/HEAD/integrations/claude/skills/odysseus/SKILL.md
