How oriacgz/distill works
Distill is a local-first Chrome side-panel extension for extracting, selecting, exporting, and compacting conversations from Claude, ChatGPT, Gemini, and Copilot. The graph follows the documented user workflow and sampled calls; several capabilities are represented at their documented module paths where their source was not sampled.
Main entry points: panel.ts Side panel · content.ts Content entry · engine.ts IRS engine · pdf.ts Encrypted PDF transport
Components 25
Conversation capture
- Content entry
packages/chrome/src/content/content.ts - Platform adapters
packages/chrome/src/content - DOM parsing
packages/chrome/src/content/dom.ts - History loading
packages/chrome/src/content/lazyload.ts - Floating controls
packages/chrome/src/content/fab.ts
Panel workflow
- Side panel
packages/chrome/src/panel/panel.ts - Selection state
packages/chrome/src/panel/store.ts - Batch export
packages/chrome/src/panel/batch.ts - Token analytics
packages/chrome/src/panel/analyticsView.ts - Settings
packages/chrome/src/panel/bindings-settings.ts
Export and storage
- Format exporters
packages/core/src/export - Download and copy
packages/chrome/src/panel/download.ts - Local history
packages/chrome/src/panel/history.ts - History interface
packages/chrome/src/panel/historyView.ts - PDF payload
packages/core/src/export/pdf-payload.ts
IRS compaction
- Compaction worker
packages/chrome/src/workers/irs.worker.ts - IRS engine
packages/core/src/irs/engine.ts - Knowledge extraction
packages/core/src/irs/aku.ts - Conflict compiler
packages/core/src/irs/state.ts - Budget fitting
packages/core/src/irs/budget.ts
Browser integrations
- Extension service worker
packages/chrome/src/background/service-worker.ts - Encrypted PDF transport
packages/chrome/src/pdf/pdf.ts
Other components
- User
- AI chat pages
- Configured PDF service
Connections 32
- User → AI chat pages: uses
- AI chat pages → Content entry: hosts
- Side panel → Content entry: requests conversation
- Content entry → Platform adapters: selects parser
- Content entry → History loading: loads history
- Content entry → DOM parsing: parses conversation
- Content entry → Side panel: returns conversation
- User → Floating controls: uses controls
- Floating controls → Extension service worker: requests panel
- Extension service worker → Side panel: opens panel
- Side panel → Selection state: updates selection
- Selection state → Side panel: provides state
- Side panel → Format exporters: formats conversation
- Side panel → Download and copy: downloads or copies
- Side panel → Batch export: starts batch
- Batch export → Content entry: requests tab data
- Side panel → Local history: records exports
- History interface → Local history: reads history
- Side panel → History interface: opens history
- Side panel → Token analytics: shows estimates
- Side panel → Settings: configures exports
- Side panel → Compaction worker: starts compaction
- Compaction worker → IRS engine: runs engine
- IRS engine → Knowledge extraction: extracts knowledge
- IRS engine → Conflict compiler: compiles conflicts
- IRS engine → Budget fitting: fits token budget
- Compaction worker → Side panel: reports result
- Side panel → PDF payload: builds PDF document
- Side panel → Encrypted PDF transport: requests PDF
- Encrypted PDF transport → Configured PDF service: sends encrypted request
- Configured PDF service → Encrypted PDF transport: returns PDF bytes
- Encrypted PDF transport → Download and copy: provides PDF bytes