- Claude Agent integration: AGENT_CONFIGS.claude, INTG_TYPES.claude, setup_claude_routes + integrations/claude/ skill bundle. Wired in app.py alongside the existing Codex integration; same scope-gated /api/codex/* backend; agent form has new description so users know it's setup for an external CLI, not an agent streamed inside Odysseus. - Remove mark_email_boundaries action: not good enough yet. Stripped from task UI, scheduler defaults, registry, tool schema, clear-cache route. Added to RETIRED_HOUSEKEEPING_ACTIONS so existing rows + their task_runs auto-purge on startup. - Cookbook download reliability: "Reconnect" fix button in the crash diagnosis runs _reconnectTask after probing has-session. 30s confirm window before marking a download "done" — kills the Finished/Downloading flicker when tmux briefly drops between captures. - Mobile UX: tap anywhere on a note card body opens the editor; Update button morphs to Archive when no text was edited; bell icon accent-colored; chip-trashing notif pills fade so only the icon rotates into the trash zone. - Settings integrations: SVG-per-provider in email + API preset dropdowns, custom drop-up-aware menus, accent sub-header icons (IMAP/SMTP), consistent card styling between list + edit, contacts Edit/Delete icons, agent form description copy.
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# Odysseus Claude Code Integration
|
|
|
|
This directory contains the Claude Code skill bundle for Odysseus.
|
|
|
|
## User Flow
|
|
|
|
1. Open Odysseus Settings > Integrations.
|
|
2. Add a Claude Agent.
|
|
3. Copy the full setup commands shown after the generated token.
|
|
4. Toggle the tools Claude is allowed to use.
|
|
5. Configure the terminal Claude Code session:
|
|
|
|
```bash
|
|
export ODYSSEUS_URL=http://your-odysseus-host:7000
|
|
export ODYSSEUS_API_TOKEN=ody_generated_token
|
|
mkdir -p ~/.claude
|
|
curl -fsSL -H "Authorization: Bearer $ODYSSEUS_API_TOKEN" "$ODYSSEUS_URL/api/claude/plugin.zip" -o /tmp/odysseus-claude-skill.zip
|
|
python3 -m zipfile -e /tmp/odysseus-claude-skill.zip ~/.claude/
|
|
```
|
|
|
|
Claude Code auto-loads anything under `~/.claude/skills/`, so the `odysseus` skill is
|
|
available in any session that has `ODYSSEUS_URL` and `ODYSSEUS_API_TOKEN` in its
|
|
environment.
|
|
|
|
## What's in the bundle
|
|
|
|
- `skills/odysseus/SKILL.md` — the skill definition Claude Code reads.
|
|
- `skills/odysseus/scripts/odysseus_api.py` — small helper that calls the scoped
|
|
`/api/codex/*` endpoints (these are the canonical scope-gated agent API; the
|
|
`codex` path is historic and shared by all agent integrations).
|
|
|
|
## Scope enforcement
|
|
|
|
The token is scope-gated. Every tool surface is checked server-side in Odysseus,
|
|
so even if Claude tries to call a forbidden endpoint, it gets `403` until the
|
|
user enables the matching toggle in Settings > Integrations > Claude Agent.
|