Parachute Architecture

Local-first, voice-first extended mind technology. A comprehensive system for AI-assisted chat, journaling, and knowledge management.

247
Dart Files (App)
81
Python Files (Computer)
101K
Lines of Code
90
API Endpoints

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.

Learn more →
🔄

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
Build Commands
# 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

Development Setup
# 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
Note: The app/ and computer/ directories are separate git repositories. Make commits within each directory, not at the parent level. The server requires a Claude OAuth token — run claude setup-token to obtain one.

Explore the Documentation