Meta-Architecture
Purpose: Document relationships, boundaries, and dependencies between the three Cleanroom Labs projects
Project Overview
The AirGap suite consists of three independent but complementary projects:
Project |
Type |
Purpose |
Primary Users |
|---|---|---|---|
AirGap Transfer |
Utility |
Transfer large files across air-gaps |
IT staff, users with large datasets |
AirGap Deploy |
Developer tool |
Package applications for air-gap deployment |
Developers, maintainers, release engineers |
Cleanroom Whisper |
End-user application |
Offline audio transcription |
Privacy-conscious users, researchers, accessibility users |
Architecture Diagram
┌───────────────────────────────────────────────────────────────────────────────┐
│ Cleanroom Labs Project Suite │
└───────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ Cleanroom Whisper │ │ AirGap Deploy │ │ AirGap Transfer │
│ │ │ │ │ │
│ End-User App │ │ Developer Tool │ │ Utility │
│ ┌──────────────┐ │ │ ┌──────────────┐ │ │ ┌──────────────┐ │
│ │ Audio Record │ │ │ │ Manifest │ │ │ │ Pack/Chunk │ │
│ │ Transcribe │ │ │ │ Parser │ │ │ │ Files │ │
│ │ System Tray │ │ │ │ │ │ │ │ │ │
│ │ SQLite DB │ │ │ │ Component │ │ │ │ Verify │ │
│ └──────────────┘ │ │ │ Collectors │ │ │ │ Checksums │ │
│ │ │ │ │ │ │ │ │ │
│ Dependencies: │ │ │ Package │ │ │ │ Unpack/ │ │
│ - whisper.cpp ├─────▶│ │ Generator │ │ │ │ Reconstruct │ │
│ - Whisper models │ (1) │ │ │ │ │ └──────────────┘ │
│ │ │ │ Install │ │ │ │
│ Can be deployed │ │ │ Script Gen │ │ │ Used for: │
│ using airgap- │ │ └──────────────┘ │ │ - Large packages │
│ deploy │ │ │ │ │ - Multi-USB │
│ │ │ │ (2) │ │ - Dataset transfer │
└─────────────────────┘ │ ▼ │ └─────────────────────┘
│ ┌──────────────┐ │ ▲
│ │ Package too │ │ │
│ │ large? │───┼───────────────┘
│ └──────────────┘ │ (3)
│ │ Integration
│ Output: │ in workflows
│ - .tar.gz/.zip │
│ - install.sh/ps1 │
└─────────────────────┘
Legend:
(1) Cleanroom Whisper can be packaged using AirGap Deploy for air-gap deployment
(2) If package exceeds USB capacity, workflow suggests AirGap Transfer
(3) AirGap Transfer handles chunked file transfer
Project Relationships
Cleanroom Whisper ↔ AirGap Deploy
Relationship: Cleanroom Whisper is a reference implementation and primary use case for AirGap Deploy.
How they relate:
AirGap Deploy packages Cleanroom Whisper (with dependencies) for air-gapped systems
Cleanroom Whisper’s
AirGapDeploy.tomldefines packaging requirements
Independence:
Cleanroom Whisper can be built/deployed manually without AirGap Deploy
AirGap Deploy can package any application, not just Cleanroom Whisper
Code dependencies: None (no compile-time or runtime dependency)
AirGap Deploy ↔ AirGap Transfer
Relationship: AirGap Transfer is an optional workflow enhancement for AirGap Deploy.
How they relate:
When AirGap Deploy creates packages larger than USB capacity, workflows suggest using AirGap Transfer
AirGap Transfer chunks the deployment package for multi-USB transfer
Integration is at the workflow level, not code level
Example workflow:
# Developer creates large package (e.g., Ollama + multiple LLM models = 20GB)
airgap-deploy prep --manifest AirGapDeploy.ollama.toml
# Output: ollama-deploy-20GB.tar.gz
# Package exceeds 16GB USB capacity
# User employs airgap-transfer to chunk it
airgap-transfer pack ollama-deploy-20GB.tar.gz /media/usb --chunk-size 16GB
# Transfer chunks across air-gap with multiple USBs
# Reconstruct on air-gapped system
airgap-transfer unpack /media/usb ~/deployment/
# Then install as normal
cd ~/deployment/ollama-deploy
sudo ./install.sh
Independence:
AirGap Deploy works fine for packages that fit on single USB
AirGap Transfer can be used for any large file transfer, not just deployment packages
Code dependencies: None (workflow integration only)
Cleanroom Whisper ↔ AirGap Transfer
Relationship: No direct relationship.
Indirect connection:
If Cleanroom Whisper is packaged with large models, the deployment package might need AirGap Transfer
Code dependencies: None
Use Cases
Each project defines detailed use cases. For a full understanding of how these tools are envisioned to work — individually and together — explore the use case documentation below.
Use case counts by project:
Project |
Count |
|---|---|
Cleanroom Whisper |
4 |
AirGap Deploy |
4 |
AirGap Transfer |
4 |
Total |
12 |
Use case overview:
ID |
Title |
Status |
Tags |
|---|---|---|---|
Cleanroom Whisper Deployment Workflow |
approved |
deploy; workflow; cleanroom-whisper |
|
Ollama Deployment to Air-Gapped System |
approved |
deploy; workflow; ollama; llm |
|
SBOM/CBOM Generation During Deployment Packaging |
proposed |
deploy; v1.1; sbom; cbom; workflow |
|
Offline Vulnerability Scanning with SBOM |
proposed |
deploy; v1.1; vulnerability; scanning; workflow |
|
Large File Transfer |
approved |
transfer; workflow; large-file; chunking |
|
Large Directory Transfer |
approved |
transfer; workflow; directory; tar |
|
Multi-USB Dataset Transfer |
approved |
transfer; workflow; multi-usb; swap |
|
Transfer Deployment Package with SBOM Metadata |
proposed |
transfer; v1.1; sbom; workflow |
|
Quick Voice Memo |
approved |
whisper; voice-memo; quick-capture |
|
Meeting Notes |
approved |
whisper; meeting-notes; history |
|
Interview Transcription |
approved |
whisper; interview; long-form |
|
Accessibility - Hands-Free Text Input |
approved |
whisper; accessibility; hands-free |
Explore the full use case documentation:
Dependency Analysis
Compile-Time Dependencies
Cleanroom Whisper dependencies:
- whisper.cpp (external, build-time)
- Rust crates: ~10 direct dependencies
- NO dependency on AirGap Deploy or AirGap Transfer
AirGap Deploy dependencies:
- Rust crates: reqwest, serde, toml, tar, etc.
- NO dependency on Cleanroom Whisper or AirGap Transfer
AirGap Transfer dependencies:
- Rust crates: sha2, minimal stdlib usage
- NO dependency on Cleanroom Whisper or AirGap Deploy
Runtime Dependencies
Cleanroom Whisper runtime:
- Requires whisper.cpp binary (external process)
- Requires at least one Whisper model file
- NO runtime dependency on other AirGap tools
AirGap Deploy runtime:
- NO runtime dependencies on other AirGap tools
- May invoke git, cargo vendor, wget/curl (system tools)
AirGap Transfer runtime:
- NO runtime dependencies on other AirGap tools
- Pure Rust, uses only stdlib
Zero runtime dependencies - Each project runs independently.
Workflow Dependencies
Developer deploying Cleanroom Whisper:
1. Use AirGap Deploy to create package
2. (Optional) Use AirGap Transfer if package is large
3. Install Cleanroom Whisper on air-gapped system
User transferring large dataset:
1. Use AirGap Transfer directly
2. NO need for other tools
Developer deploying other applications:
1. Use AirGap Deploy with custom manifest
2. (Optional) Use AirGap Transfer if needed
3. NO connection to Cleanroom Whisper
Workflow integration is optional - Tools complement each other but work independently.
Project Boundaries
Cleanroom Whisper
Value: Private, offline audio transcription
See Cleanroom Whisper’s Overview for competitive positioning and target audience.
Scope:
Audio recording and transcription
System tray interface
Hotkey management
Transcription history (SQLite)
Privacy-focused, offline-first
Out of scope:
Deployment packaging (that’s AirGap Deploy)
File transfer utilities (that’s AirGap Transfer)
Network communication (violates privacy principle)
AirGap Deploy
Value: Deploy any application to air-gapped systems with one manifest
See AirGap Deploy’s Overview for competitive positioning and target audience.
Scope:
Parse deployment manifests (TOML)
Collect application components (source, binaries, models)
Configurable and/or customizable installation routines (TBD)
Package for air-gap deployment
Generic, and can be extended to work for a wide variety of applications
Out of scope:
Large file chunking/transfer (suggest AirGap Transfer in workflows)
Comprehensive application-specific logic (remains generic and extensible)
Runtime dependencies on specific applications
AirGap Deploy’s architecture is designed to support applications across multiple languages and build systems. For the MVP, the scope is limited to a framework that can deploy Cleanroom Whisper and similar Rust applications, with extension points for additional language ecosystems in future releases.
AirGap Transfer
Value: Safely transfer multi-GB datasets across air-gaps
See AirGap Transfer’s Overview for competitive positioning and target audience.
Scope:
Chunk large files/directories
Checksum verification
Resume interrupted transfers
Reconstruct files on destination
Generic, works for any large data
Out of scope:
Application packaging (that’s AirGap Deploy)
Deployment orchestration (users combine tools in workflows)
Audio transcription or other application features