Mobile-first companion UI for AI coding workflows
UI parity with OpenCode • Observability via Claude Code Hooks • Control via Claude Agent SDK
This repository is work in progress, but the current Claude-first MVP is no longer just scaffolding.
- ✅ Bridge-first pairing, health verification, and connection mode handling are implemented.
- ✅ Claude Hooks observation, Agent SDK session flows, streaming chat, tool cards, and timeline persistence are implemented.
- ✅ Git status, diff viewing, and repository browsing are implemented for the current mobile/bridge stack.
- ⏳ Remaining work is focused on polish: approval UX refinement, notification center UI, and future multi-agent expansion.
If you're new here, start with: docs-site/src/content/docs/ (browse the docs-site content or run npm run dev in docs-site/ to view locally).
ReCursor is a Flutter mobile app designed to provide an OpenCode-like UI/UX on mobile (tool cards, diffs, session timeline), while integrating with a developer's desktop/local environment.
Long-term vision: ReCursor is coding-agent agnostic — designed to support multiple AI coding tools. Claude Code is the first supported integration, with future support planned for OpenCode, Gemini CLI, Codex CLI, GitHub CLI, and others.
- UI/UX parity goal: ReCursor's mobile UI should feel like OpenCode desktop, adapted for touch and smaller screens.
- Integration goal: Observe and complement a user's AI coding workflow from mobile. Currently supports Claude Code with additional agents planned.
ReCursor currently integrates with Claude Code, Anthropic's AI coding assistant. Future releases will add support for additional coding agents (OpenCode, Gemini CLI, Codex CLI, GitHub CLI, etc.).
Claude Code's Remote Control feature is first-party only (designed for claude.ai/code and official Claude apps). There is no public API for third-party clients to join or mirror existing Claude Code sessions.
ReCursor's supported Claude Code integration paths (current implementation):
- Claude Code Hooks: HTTP-based event observation (one-way)
- Claude Agent SDK: parallel, controllable agent sessions that ReCursor can drive
ReCursor uses a bridge-first connection model:
- The mobile app connects directly to a user-controlled desktop bridge (no hosted service, no user accounts)
- On startup, the app restores saved bridge pairings or guides through QR-code pairing
- Remote access is achieved via secure tunnels (Tailscale, WireGuard) to the user's own bridge — not through unsupported third-party Claude Remote Control access
C:/Repository/ReCursor/
├── apps/
│ └── mobile/ # Flutter mobile client (startup, chat, timeline, repos, git, diff)
├── packages/
│ └── bridge/ # Node/TypeScript desktop bridge (WebSocket, hooks, CLI, file/git services)
├── docs/ # Source-of-truth project documentation
├── .github/ # CI/CD scaffolding
└── fastlane/ # Release automation scaffolding
- Published docs site:
docs-site/— runnpm install && npm run devto view locally - Docs landing page: docs-site/src/content/docs/index.mdx
- Architecture:
- System overview: docs-site/src/content/docs/architecture/system-overview.md
- Data flow: docs-site/src/content/docs/architecture/data-flow.md
- Bridge protocol: docs-site/src/content/docs/architecture/bridge-protocol.md
- Integrations:
- OpenCode UI patterns: docs-site/src/content/docs/integrations/opencode-ui-patterns.md
- Claude Code Hooks: docs-site/src/content/docs/integrations/claude-code-hooks.md
- Agent SDK: docs-site/src/content/docs/integrations/agent-sdk.md
See:
CONTRIBUTING.mdCODE_OF_CONDUCT.mdSECURITY.md
If you're using agentic AI to contribute, read AGENTS.md first.
MIT — see LICENSE.