Parachute Architecture
Local-first, voice-first extended mind technology. A comprehensive system for AI-assisted chat, journaling, and knowledge management.
System Overview
Parachute consists of two main components — a Flutter app and a Python server — that work together to provide an AI-powered extended mind. Bot connectors bridge the system to Telegram and Discord.
┌──────────────────────────────────────────────────────────────────────────────┐
│ USER INTERFACES │
│ │
│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ ┌──────────────┐ │
│ │ iOS/Android │ │ macOS │ │ Web │ │ Telegram │ │
│ │ (Mobile) │ │ (Desktop) │ │ (Chrome) │ │ Discord │ │
│ └───────┬───────┘ └───────┬───────┘ └───────┬───────┘ └──────┬───────┘ │
│ │ │ │ │ │
│ └──────────────────┼──────────────────┘ │ │
│ │ │ │
│ ┌──────────────────────────▼─────────────────────────┐ │ │
│ │ PARACHUTE APP (Flutter) │ │ │
│ │ │ │ │
│ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────────┐ │ │ │
│ │ │ Chat │ │ Daily │ │ Vault │ │ Brain │ │ │ │
│ │ └───┬────┘ └───┬────┘ └───┬────┘ └─────┬──────┘ │ │ │
│ │ │ │ │ │ │ │ │
│ │ ┌───▼──────────▼──────────▼─────────────▼──────┐ │ │ │
│ │ │ Riverpod State + Services │ │ │ │
│ │ └──────────────────┬───────────────────────────┘ │ │ │
│ └─────────────────────│───────────────────────────────┘ │ │
└────────────────────────│──────────────────────────────────────────│───────────┘
│ HTTP/SSE │
│ │
┌────────────────────────▼──────────────────────────────────────────▼───────────┐
│ PARACHUTE COMPUTER (Python/FastAPI) │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ API Router (19 route files, ~90 endpoints) │ │
│ │ chat │ sessions │ bots │ workspaces │ auth │ hooks │ modules │ ... │ │
│ └───────────────────────────┬─────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────────────────▼─────────────────────────────────────────────┐ │
│ │ Orchestrator │ │
│ │ Trust enforcement (full │ vault │ sandboxed) │ │
│ │ Docker sandbox for untrusted sessions │ │
│ └────────┬──────────────────────┬────────────────────┬────────────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌────────────────┐ ┌──────────────────────┐ │
│ │ Claude SDK │ │ Session Mgr │ │ Module Loader │ │
│ │ (Agent) │ │ + SQLite DB │ │ brain│chat│daily │ │
│ └──────┬───────┘ └────────────────┘ └──────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────┐ ┌───────────────────────────────────────────────────────┐ │
│ │ Claude AI │ │ Bot Connectors (Telegram, Discord) │ │
│ │ (Anthropic)│ │ Streaming │ group history │ pairing │ ack reactions │ │
│ └────────────┘ └───────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
│ │ VAULT (~\/Parachute) │ │
│ │ │ │
│ │ Daily/ Chat/ .claude/ .parachute/ │ │
│ │ └── 2026-02-09.md └── sessions.db └── projects/ └── config.yaml │ │
│ │ └── assets/ └── assets/ └── (JSONL) └── .token │ │
│ │ └── bots.yaml │ │
│ │ .modules/ └── hooks/ │ │
│ │ └── brain/ chat/ daily/ └── logs/ │ │
│ └─────────────────────────────────────────────────────────────────────────┘ │
└───────────────────────────────────────────────────────────────────────────────┘
Key Concepts
App (Flutter)
Unified mobile/desktop app with four features: Chat (AI conversations), Daily (voice journaling), Vault (knowledge browser), and Brain (semantic search). Built with Flutter and Riverpod.
Learn more →Computer (Python)
AI orchestration server running FastAPI. Manages agent execution with trust levels, session persistence, Claude SDK integration, module loading, and bot connectors.
Learn more →Vault
Your local-first data store at ~/Parachute. Contains journals (Daily/), chat sessions (Chat/), modules (.modules/), and server config (.parachute/). Plain files, always accessible.
Learn more →Trust Levels
Three-tier security model: full (unrestricted), vault (directory-restricted), sandboxed (Docker container). Per-session enforcement with workspace-level floors.
Pointer Architecture
Session metadata lives in SQLite, actual transcripts in SDK JSONL files. Database is a pointer layer, not source of truth for messages.
Learn more →Bot Connectors
Telegram and Discord bots bridge external messaging to Parachute sessions. Per-platform trust levels, streaming responses, group history injection, and user pairing/approval.
Learn more →Module System
Brain, Chat, and Daily are loadable modules with manifest.yaml, hash verification, and approval workflow. Bundled in modules/ and deployed to vault/.modules/.
Learn more →Para-ID System
Portable identifiers (para:abc123xyz) for cross-device sync. Every journal entry gets a unique ID that stays with it across devices and exports.
Learn more →Workspaces
Organize sessions into workspaces with directory scoping and trust level floors. Each workspace maps to a vault subdirectory with its own working context.
Learn more →Build Flavors
The app supports multiple deployment configurations via compile-time flags:
| Flavor | Use Case | Visible Tabs | Server |
|---|---|---|---|
daily |
Standalone journal app | Daily only | None (offline) |
client |
Standard app (default) | Chat, Daily, Vault, Brain | External URL |
computer |
Bundled server (macOS) | All + Settings | Lima VM or Bare Metal |
# Daily-only standalone
flutter build apk --release --flavor daily --dart-define=FLAVOR=daily
# Full Parachute (Android)
flutter build apk --debug --flavor full
# macOS desktop
flutter run -d macos
# Parachute Computer (macOS bundled)
flutter build macos --release --dart-define=FLAVOR=computer
Technology Stack
App (Flutter)
- Framework: Flutter 3.x
- State: Riverpod 2.6
- Transcription: Sherpa-ONNX (Parakeet)
- Markdown: flutter_markdown
- Audio: record, audio_session
- Storage: SharedPreferences, local files
- HTTP: http package + SSE streaming
Computer (Python)
- Framework: FastAPI 0.109+
- Database: SQLite (aiosqlite)
- AI: Claude Agent SDK
- Streaming: SSE (sse-starlette)
- Validation: Pydantic 2.5+
- Bots: python-telegram-bot, discord.py
- Sandbox: Docker (aiodocker)
Quick Start for Developers
# Clone the repos
git clone https://github.com/OpenParachutePBC/parachute-computer.git computer
git clone https://github.com/OpenParachutePBC/parachute-app.git app
# Start the server (first-time install + daemon)
cd computer && ./install.sh
# Check server status
parachute server status
# In another terminal, run the app
cd app && flutter run -d macos
claude setup-token to obtain one.