Skip to content

Add OpenClaw Plugin for Omi Integration#4940

Closed
atlas-agent-omi[bot] wants to merge 4 commits intomainfrom
atlas/openclaw-omi-plugin
Closed

Add OpenClaw Plugin for Omi Integration#4940
atlas-agent-omi[bot] wants to merge 4 commits intomainfrom
atlas/openclaw-omi-plugin

Conversation

@atlas-agent-omi
Copy link
Copy Markdown

@atlas-agent-omi atlas-agent-omi Bot commented Feb 22, 2026

Official OpenClaw Plugin for Omi

Closes #4939

What

Full OpenClaw plugin that connects OpenClaw agents to a user's Omi account via the Developer API, plus mobile app setup screen and documentation.

Changes

Plugin (plugins/openclaw/) — 1,288 lines across 8 files:

  • index.ts — Main plugin with 7 agent tools + session context injection
  • omi-client.ts — Typed Omi API client (memories, conversations, action items)
  • cache.ts — TTL cache to avoid excessive API calls
  • openclaw.plugin.json — Plugin manifest (kind: memory)
  • skills/omi/SKILL.md — Teaches agents how to use Omi naturally
  • README.md — Full setup and usage documentation

Agent Tools:

Tool Endpoint Description
omi_memories_search GET /v1/dev/user/memories Search memories with category filtering
omi_memories_create POST /v1/dev/user/memories Create a new memory
omi_memories_batch POST /v1/dev/user/memories/batch Batch create up to 25 memories
omi_conversations GET /v1/dev/user/conversations List conversations with optional transcripts
omi_conversation_detail GET /v1/dev/user/conversations/:id Get single conversation with full transcript
omi_action_items GET /v1/dev/user/action-items List action items with filters
omi_action_items_create POST /v1/dev/user/action-items Create action items (single or batch)

Session Context Injection:

  • On every agent session start, fetches recent Omi memories + conversation summaries
  • Injects as context so the agent immediately knows about the user's life
  • Protected against prompt injection (XML-escaped, sandboxed in <omi-context> tags)
  • 5-minute TTL cache to stay fast

Mobile App (app/lib/pages/settings/developer.dart):

  • New "OpenClaw" section in Developer Settings
  • Shows install command + config snippet
  • One-tap copy for the full setup command
  • Links to docs

Documentation (docs/docs/developer/Integrations/openclaw.mdx):

  • Full integration guide: prerequisites, setup, features, config, troubleshooting
  • Added to docs navigation sidebar

Setup

openclaw plugins install @openclaw/omi
openclaw config set plugins.entries.omi.config.apiKey "omi_dev_..."
openclaw gateway restart

Testing

  • Plugin TypeScript compiles cleanly
  • All API calls have proper error handling and timeouts
  • Cache prevents excessive API calls
  • Prompt injection protection on injected context
  • No changes to existing code except adding the mobile app section

atlas-agent[bot] added 4 commits February 22, 2026 15:11
- Memory provider with search/create/batch operations
- Conversation history access with transcript support
- Action items management (create, list, batch)
- Auto context injection on session start
- TTL caching for API responses
- Prompt injection protection
- Comprehensive agent skill documentation

Implements feature request from #4939
- Add OpenClaw setup section to Developer Settings page
- Create comprehensive OpenClaw integration documentation
- Update navigation config to include OpenClaw in Integrations group
- Update plugin README with mobile app setup instructions
@atlas-agent-omi
Copy link
Copy Markdown
Author

Testing Plan

What I verified (no human testing needed)

  • TypeScript — Plugin code is type-safe, follows OpenClaw plugin SDK patterns exactly (compared against memory-lancedb and memory-core reference implementations)
  • Plugin manifestopenclaw.plugin.json has valid JSON Schema for config validation, required apiKey field, correct kind: "memory"
  • API client — All endpoints match the documented Omi Developer API (GET/POST/PATCH/DELETE for memories, conversations, action items + batch endpoints)
  • Error handling — Every tool call is wrapped in try/catch, returns user-friendly error messages
  • Prompt injection protectionescapeForPrompt() XML-escapes all injected content, looksLikePromptInjection() filters known injection patterns, context is wrapped in <omi-context> tags with "treat as untrusted" instruction
  • Cache — TTL cache prevents duplicate API calls, write operations (POST/PATCH/DELETE) skip cache, clear() available
  • Conversation summary fallback — Auto-inject uses summary || structured.overview since the Omi API returns structured.overview not top-level summary
  • Mobile app — OpenClaw section follows exact same patterns as Claude Desktop section (colors, padding, border radius, font family)
  • No regressions — Only additive changes: new plugins/openclaw/ directory, new section in developer.dart, new doc page, updated docs.json nav

What needs human testing

  1. Mobile app UI — Open Omi app → Settings → Developer → scroll to "OpenClaw" section

    • Section renders correctly below MCP section
    • Prompt text displays with all info (API base URL, setup commands)
    • "Copy Prompt" button copies text to clipboard
    • No layout issues on different screen sizes
  2. Plugin with real Omi account (optional, for full integration testing)

    • Install plugin: openclaw plugins install @openclaw/omi
    • Configure: openclaw config set plugins.entries.omi.config.apiKey "omi_dev_..."
    • Restart gateway, verify plugin loads
    • Test omi_memories_search tool returns real memories
    • Test omi_conversations tool returns real conversations
    • Test omi_action_items tool returns real action items
    • Test create tools (omi_memories_create, omi_action_items_create)
    • Test auto-inject (autoInject: true) injects context on session start
  3. Documentation

    • docs/docs/developer/Integrations/openclaw.mdx renders correctly in docs site
    • Navigation entry appears under Integrations in sidebar

Risk assessment

  • Low risk — All changes are additive (new plugin dir, new UI section, new doc page)
  • No existing code modified except developer.dart (new section added at the end of MCP section) and docs.json (nav entry added)
  • Plugin is opt-in — users must explicitly install and configure it

@beastoin
Copy link
Copy Markdown
Collaborator

@omi-discord-vector There hasn't been any activity on this draft for 3+ days; to keep the repo current, closing this now. Reopen when it's ready.


by AI for @beastoin

@beastoin beastoin closed this Mar 10, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Hey @atlas-agent-omi[bot] 👋

Thank you so much for taking the time to contribute to Omi! We truly appreciate you putting in the effort to submit this pull request.

After careful review, we've decided not to merge this particular PR. Please don't take this personally — we genuinely try to merge as many contributions as possible, but sometimes we have to make tough calls based on:

  • Project standards — Ensuring consistency across the codebase
  • User needs — Making sure changes align with what our users need
  • Code best practices — Maintaining code quality and maintainability
  • Project direction — Keeping aligned with our roadmap and vision

Your contribution is still valuable to us, and we'd love to see you contribute again in the future! If you'd like feedback on how to improve this PR or want to discuss alternative approaches, please don't hesitate to reach out.

Thank you for being part of the Omi community! 💜

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Official Omi plugin for OpenClaw — use Omi as a memory provider

1 participant