Skip to content

About

A multi-agent orchestration platform for AI CLI tools like Claude Code and Kiro CLI.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PlexusOne App

Swift CI License

A multi-agent orchestration platform for AI CLI tools like Claude Code and Kiro CLI.

PlexusOne App Hero

PlexusOne App Screenshot

Repository Structure

plexusone-app/
├── apps/
│   ├── desktop/          # macOS app (Swift + SwiftTerm)
│   ├── flutter/          # iOS/Android/web/macOS companion (Flutter)
│   └── ios/              # Native iOS/iPadOS companion (Swift + SwiftTerm)
├── services/
│   └── tuiparser/        # WebSocket bridge for mobile streaming (Go)
└── docs/
    ├── guides/           # User and developer guides
    ├── design/           # Architecture and decision records
    ├── specs/            # PRD, TRD, feature specs, roadmaps
    └── releases/         # Release notes and changelog

Components

PlexusOne Desktop (macOS)

Native macOS terminal multiplexer built with Swift and SwiftTerm.

  • Multi-window, multi-pane grid layout
  • Attach/detach to tmux sessions
  • Pop-out sessions to dedicated windows
  • Pane terminal - a plain shell below a pane's coding session, opened in the folder the session works in; shown or hidden from the pane header, resizable, with a default height set in Settings
  • Input detection for AI assistant prompts (Claude, Kiro, etc.)
  • PTY wrapper detection - warns if a session is running behind a shell-autocomplete PTY shim (Kiro CLI, Fig, Amazon Q) known to freeze terminal panes
  • Claude Sessions window (⇧⌘S) - lists Claude Code sessions with their tmux session, subject, repositories, last activity, and whether each ended normally or in a crash, restart, or closed terminal; resumes the ones you pick into tmux sessions you name
  • Waiting alerts - a notification and Dock badge when a Claude session needs you (for example at a permission prompt); ⌘J jumps to the next one
  • Pane headers show each pane's Claude session name and whether it is waiting
  • Restoring at launch recreates missing tmux sessions by resuming the Claude session that last ran in each, so a crash or restart is one step to recover from
  • Optional Claude Code hook that records sessions and their tmux names even while the app is closed
  • Trackpad scrolls tmux history (tmux mouse mode per attached session; hold Shift to drag-select)
  • Keyboard pane navigation (⌘] / ⌘[), attach (⌥⌘A), and detach (⇧⌘A)
  • Visual focus indicator for active pane
  • Session state persistence

Download: Releases

Install: Open the .dmg and drag PlexusOne Desktop to Applications. Release builds are ad-hoc signed but not notarized, so on first launch macOS shows "Apple could not verify ... free of malware". Open System Settings → Privacy & Security, scroll to the message about PlexusOne Desktop, and click Open Anyway; the prompt does not recur. (Alternatively, from Terminal: xattr -dr com.apple.quarantine "/Applications/PlexusOne Desktop.app".)

Build & Run:

cd apps/desktop
swift build
open "PlexusOne Desktop.app"

PlexusOne Mobile - Flutter (iOS/Android/Web/macOS)

Cross-platform companion app for monitoring and interacting with agents remotely.

  • Terminal-styled output view
  • Session tabs
  • Quick action buttons (Yes/No/Always)
  • Virtual D-pad for menu navigation
  • WebSocket connection to TUI Parser, with an optional token and wss://

Build & Run:

cd apps/flutter
flutter pub get
flutter run

PlexusOne Mobile - Native iOS

Native iOS/iPadOS companion app using SwiftTerm (same terminal library as Desktop). Connects to TUI Parser with an optional token.

Build & Run:

cd apps/ios
xcodebuild -project PlexusOneiOS.xcodeproj \
  -scheme PlexusOneiOS \
  -sdk iphonesimulator \
  -destination 'platform=iOS Simulator,name=iPhone 16 Pro' \
  build

TUI Parser (WebSocket Bridge)

Go service that bridges tmux sessions to mobile clients over WebSocket.

  • Attaches to tmux sessions via PTY
  • Streams terminal output
  • Accepts input/keystrokes from mobile
  • Pattern detection for TUI prompts (planned)

Build & Run:

cd services/tuiparser
go build -o bin/tuiparser ./cmd/tuiparser
./bin/tuiparser --port 9600

Debug console: http://localhost:9600

By default it listens on 127.0.0.1 only. Any client that connects can type into your tmux sessions, so listening on the network (--host 0.0.0.0) requires a token, which clients send as Authorization: Bearer <token> or ?token=<token>:

export TUIPARSER_TOKEN=$(openssl rand -hex 32)
./bin/tuiparser --host 0.0.0.0 --port 9600

For access away from your desk, prefer Tailscale or an SSH tunnel to exposing the port. See Connecting to Desktop.

Architecture

┌───────────────────────────────────────────────────┐
│  macOS                                            │
│                                                   │
│  ┌─────────────┐     ┌─────────────────────────┐  │
│  │ tmux        │     │ TUI Parser (Go)         │  │
│  │ sessions    │◄───►│ WebSocket server :9600  │  │
│  └─────────────┘     └───────────┬─────────────┘  │
│         ▲                        │                │
│         │                        │                │
│  ┌──────┴──────┐                 │                │
│  │ PlexusOne   │                 │                │
│  │ Desktop     │                 │                │
│  └─────────────┘                 │                │
└──────────────────────────────────┼────────────────┘
                                   │ WebSocket (LAN)
                         ┌─────────▼────────┐
                         │ PlexusOne Mobile │
                         │ (Flutter or iOS) │
                         └──────────────────┘

Related Projects

Other tools for running several coding agents side by side:

Project Built with Focus
cmux Swift, Ghostty-based macOS terminal Vertical tabs and notifications for AI coding agents
Agent Deck Go, terminal UI One session manager for Claude, Gemini, OpenCode, Codex, and others
workmux Rust, tmux Git worktrees paired with tmux windows for parallel development
herdr Rust A background server keeps agent terminals running; after a restart it restores the layout and resumes supported agent sessions
Agent of Empires Rust, terminal and web UI Managing several agents from a terminal UI or a browser, including on mobile
dmux tmux Git worktrees and parallel agent tasks

PlexusOne keeps your existing tmux sessions as the backend: a native macOS grid of SwiftTerm panes, a mobile companion over WebSocket, and a Claude Sessions window that finds and restores sessions lost to a crash or restart.

Documentation

Development

Prerequisites

  • macOS 14+
  • Xcode 16+ (for Swift development)
  • Go 1.22+
  • Flutter 3.x
  • tmux

Quick Start

  1. Start tmux sessions:

    tmux new-session -d -s agent1
    tmux new-session -d -s agent2
  2. Run TUI Parser:

    cd services/tuiparser && ./bin/tuiparser
  3. Run Desktop App:

    cd apps/desktop && open "PlexusOne Desktop.app"
  4. Run Mobile App (same WiFi network):

    cd apps/flutter && flutter run

License

MIT - See LICENSE

About

A multi-agent orchestration platform for AI CLI tools like Claude Code and Kiro CLI.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages