FLUTTER ECOSYSTEM

sesori-ai/sesori_apps_monorepo

Sesori iOS/Android 앱 및 Sesori Bridge CLI — 스마트폰에서 Claude, Codex, OpenCode, Cursor, Pi, OMP, Hermes 코딩 세션을 제어

sesori_apps_monorepo 프로젝트 이미지
Stars
122
Forks
8
최근 푸시(UTC)
2026. 9. 18.
프로젝트 상태
활성
Sesori AI GitHub avatar
GITHUB Organization

Sesori AI ↗

언어DartHTMLRubyC++ShellSwiftCMakeJavaScriptPowerShellTypeScriptMakefileKotlinCInno SetupDockerfileObjective-C

기술 주제

순위

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

Sesori

Run your AI coding agents from your phone.

Sesori is the mobile cockpit for your AI coding sessions — OpenCode, OpenAI Codex CLI, GitHub Copilot CLI, Google Antigravity, Cursor, Claude Code, Hermes Agent, Pi, and Oh My Pi.
Leave your laptop. Take the session.

Sesori banner

Download on the App Store Get it on Google Play GitHub release License

Join Discord Follow on X

Get started · Docs · How it works · Architecture · Security · Contribute


Install in 3 steps

1. Download the Sesori app
Download on the App Store Get it on Google Play

Requires iOS 15 or later, or Android 8.0 or later.

2. Install the Bridge CLI on your machine

The Bridge is a small source-available command-line tool that connects the app to your AI coding assistants — the full list is below.

macOS / Linux:

curl -fsSL https://sesori.com/install.sh | bash

Windows (PowerShell):

irm https://sesori.com/install.ps1 | iex

Prefer npm or bun? You can also bootstrap the Bridge with npx @sesori/bridge or bunx @sesori/bridge. It installs the same managed runtime under the hood.

3. Start the Bridge
sesori-bridge

Sign in with the same account on your phone and your machine. The two pair automatically over the encrypted relay, even on different networks.

Full walkthrough: prerequisites, OpenCode setup, headless VM instructions, and troubleshooting are in docs/GETTING_STARTED.md.


What you can do

Feature What it means
Browse projects & sessions See your projects and active sessions across every supported assistant, right on your phone.
Keep agents moving Answer questions, approve steps, and stop or restart tasks without returning to your desk.
Review code and PR status Read diffs and keep tabs on pull requests without opening your laptop.
Voice or type Talk to your assistant naturally or use the keyboard — whatever works in the moment.
Real-time notifications Get pinged the moment your AI needs you back or a long-running task finishes.
End-to-end encrypted Your code, prompts, and responses stay between your phone and your machine.

How it works

A lightweight Bridge runs on your laptop alongside your AI coding assistant. It connects to a relay server over WebSocket, and your phone connects to the same relay. The relay routes encrypted traffic between them — it never sees your application data.

graph LR
  OC["AI Assistant<br/>on your machine"] -- "Local transport" --> B["Bridge CLI<br/>your laptop"]
  B -- "WSS · E2E encrypted" --> R["Relay Server<br/>cloud router"]
  R -- "WSS · E2E encrypted" --> M["Sesori App<br/>your phone"]

Your laptop and phone perform an ephemeral X25519 key exchange, then encrypt every message with XChaCha20-Poly1305. The relay only routes opaque binary frames.

Dive deeper: docs/HOW_IT_WORKS.md


Why you can trust it

  • End-to-end encryption. All application data between your phone and laptop is encrypted with XChaCha20-Poly1305.
  • Ephemeral key exchange. Each connection uses a fresh X25519 Diffie-Hellman keypair; the relay never holds the room key.
  • Local-first. Your source code, prompts, and AI responses stay on your machine. We only store the account and routing metadata needed to pair your devices. Push notification previews may include a short snippet of an event; see docs/SECURITY.md for details.
  • Source-available bridge. The Bridge and the client protocol are in this repo. You can audit the code that runs on your machine.
  • Source-available license. Released under the Functional Source License, Version 1.1, Apache 2.0 Future License (FSL-1.1-ALv2).

Security details: docs/SECURITY.md


Supported AI assistants

Assistant Integration
OpenCode Deep native integration with a bridge-managed runtime.
OpenAI Codex CLI Native integration over Codex's local protocol.
GitHub Copilot CLI ACP-based integration with managed installation of official CLI releases.
Google Antigravity Official ACP runtime pair, managed installation and personal Google browser login.
Cursor ACP-based integration.
Claude Code Native stream-json integration.
Hermes Agent ACP-based integration with Nous Research's coding agent.
Pi Native JSONL RPC integration.
Oh My Pi ACP-based integration.
DeepSeek Harness ACP-based integration through Sesori's managed adapter.
Grok Build ACP-based integration with xAI's user-installed CLI.

Every integration ships enabled by default — pick your assistant when you start a session, and run several at once on the same Bridge.

GitHub Copilot CLI notes
  • Install: the Bridge can install the pinned official CLI release, use a compatible copilot from your PATH, or use an explicit --copilot-bin <path>.
  • Login and providers: authenticate locally with copilot login, a supported GitHub token environment variable, or Copilot BYOK configuration. Sesori never sends credentials to phone clients.
  • License and access: managed installation downloads an unmodified upstream binary under the GitHub Copilot CLI License. It does not include Copilot service access; an eligible account and organization policy are still required.
  • Questions: Copilot CLI does not currently forward ask_user interactions over ACP, so Sesori does not claim question support for this harness.
Google Antigravity notes
  • Runtime and license: uses Google's proprietary official ACP pair, pinned to registry package 1.1.1 / agy_acp_server_1.1.1. Review Google's terms and documentation before downloading or authenticating.
  • Hosts: macOS arm64, Linux x64/arm64 and Windows x64/arm64. macOS x64 is unsupported, even with an explicit path. Linux managed installation requires Info-ZIP unzip.
  • Setup: choose Install in Antigravity's harness detail after reviewing its guidance, or provide the official matching server/harness siblings locally. --antigravity-bin <path> is authoritative and disables managed installation. Setup runs only a bounded sanitized --version probe; it does not initialize ACP or validate a login.
  • Login: personal Google OAuth from a current mobile/desktop client, separate from Sesori account login. Sesori captures the issued loopback callback automatically; mobile returns through a nonce-only native app callback. The bridge validates and exchanges the captured callback. There is no copy/paste or CLI login fallback; credentials live in an isolated bridge-side profile.
  • Sessions: supervised default mode only, no persistent approvals. Before a real session supplies model choices, a new session in a fresh process uses the account default. Local deletion does not erase Google's retained history.
  • Evidence: macOS arm64 initialize-only/managed installation is verified; real OAuth, authenticated sessions and Linux/Windows native correctness remain unverified. See the Antigravity guide for setup, images/history behavior, safety boundaries and verification limits.
DeepSeek Harness notes
  • Install: the Bridge can install the pinned Sesori DeepSeek ACP adapter, or it uses a compatible sesori-deepseek-acp from your PATH. Point --deepseek-bin <path> at a specific adapter to make it authoritative.
  • Profile and state: your normal DSH_HOME settings, provider credentials, and skills remain local and available to DeepSeek Harness. Sesori-owned session mutations are isolated under the Bridge's DeepSeek plugin state.
  • Security: telemetry is forced off. The default sandbox is workspace-write and approval behavior is ask; only open projects whose code you trust.
  • Login: provider setup and login happen locally through DeepSeek Harness; Sesori does not expose provider credentials to phone clients.
Grok Build notes
  • Install: install Grok Build through xAI's official CLI. Sesori requires version 1.0.5 or newer and uses grok from your PATH by default. Point --grok-bin <path> at a specific binary to make it authoritative. Sesori does not install or update Grok.
  • Authentication: sign in locally with grok login or configure a supported API key, enterprise account, or custom model. Credentials stay on the bridge machine and are never sent to phone clients.
  • Permissions: Sesori runs a dedicated no-leader ACP process with in-process update checks disabled and Grok's normal ask mode. It never enables --always-approve or --yolo; supported permission requests remain available on connected clients.
  • Models and reasoning: selectable model IDs and reasoning effort values come directly from Grok and are sent back unchanged before a turn.
  • Content: initial support accepts text and embedded context. Grok does not currently advertise image prompt support through ACP, so image attachments are unavailable for this harness.
  • Sessions and deletion: persisted Grok sessions can be imported and continued. Deleting one from Sesori closes the live session and removes Sesori's catalog/transcript, but the upstream row remains in Grok storage because ACP exposes close rather than delete.
Pi notes
  • Trust model: Sesori always launches Pi with --approve — project-local Pi settings, extensions, skills, and prompt templates are trusted and applied without prompts. Only open projects whose code you trust.
  • Install: the Bridge can install a pinned Pi release for you, or it uses a suitable pi from your PATH. Point --pi-bin <path> at a specific binary to make it authoritative (managed install is then disabled).
  • Profile: your normal Pi data and configuration are used — PI_CODING_AGENT_DIR, session directories, and provider credentials are inherited, never replaced with a Sesori-only profile.
  • Login: provider login happens locally via Pi's /login; there is no phone-driven provider login.
  • Terminal handoff: terminal-created sessions can be continued from Sesori, but exit the terminal Pi first. Running the same session concurrently from a terminal and Sesori is unsupported.
Oh My Pi notes
  • Approval policy: Sesori inherits your OMP tools.approvalMode. The default yolo mode asks nothing; configure a stricter mode locally to get standard approval prompts.
  • Install: the Bridge can install a pinned OMP release, or it uses a suitable omp from your PATH. Point --omp-bin <path> at a specific binary to make it authoritative (managed install is then disabled).
  • Profile: your normal OMP profile, models, plugins, and credentials are used — OMP_PROFILE, legacy PI_PROFILE, and XDG roots are inherited.
  • Login: provider login happens locally; there is no phone-driven provider login.
  • Protocol scope: Sesori talks to OMP over standard ACP (omp acp). OMP-specific features outside ACP — host tools, subagent frames, terminal handoff frames — are not available from Sesori. Parent/child session lineage is not shown because ACP session listings do not expose it.
  • Terminal handoff: as with Pi, exit a terminal OMP session before continuing it from Sesori.
Hermes Agent notes
  • Version: requires Hermes Agent 0.20.0 or later.
  • Install: Sesori never installs or updates Hermes. It uses the hermes CLI from your PATH; point --hermes-bin <path> at a specific binary to make it authoritative.
  • Model & login: pick your model and provider, and log in, with the Hermes CLI itself — Sesori inherits that configuration and never handles provider credentials.
  • Sessions: sessions you start from Sesori are always visible, and other persisted ACP sessions can be imported explicitly. Ordinary Hermes CLI/TUI sessions are not discovered automatically.
  • Deletion: deleting a Hermes session removes Sesori's copy of it; Hermes keeps its own record until upstream offers a delete API.

Repository overview

sesori_apps_monorepo/
├── bridge/     # Pure Dart workspace — Bridge CLI + backend plugins
├── client/     # Flutter workspace — mobile & desktop shells
├── shared/     # Cross-product crypto & protocol primitives
└── docs/       # Deep-dive guides
  • bridge/app is the headless CLI that runs on your laptop.
  • bridge/sesori_plugin_* packages implement support for each AI assistant backend.
  • client/app is the Flutter mobile shell.
  • client/desktop is the in-development desktop companion.
  • shared/sesori_shared holds the encryption primitives and wire types used by both sides.

Full architecture: repo structure, dependency graph, and layered design are in docs/ARCHITECTURE.md.


Built for developers

  • Plugin system. New AI assistant backends live in their own plugin package without touching the mobile app or core bridge.
  • Headless bridge. The Bridge is usable without a GUI, ideal for remote machines, VMs, and server setups.
  • Cross-platform. Mobile apps run on iOS and Android. Bridge CLI runs on macOS, Linux, and Windows.
  • Encrypted by default. No optional VPN, no tunnel setup, no exposed ports on your laptop.

For where the project is headed, see docs/VISION.md and docs/ROADMAP.md.

Want to hack on it? See docs/CONTRIBUTING.md.


License & support

This repository is source-available under the Functional Source License, Version 1.1, Apache 2.0 Future License (FSL-1.1-ALv2).


Download for iOS · Download for Android · Read the Quickstart