Sync email threads from IMAP to Markdown, draft replies, manage collaborators
Project description
Corky
Alpha software. Expect breaking changes between minor versions. See VERSIONS.md for migration notes.
Full documentation: https://btakita.github.io/corky
Sync email threads from IMAP to Markdown. Draft replies with AI assistance. Share scoped threads with collaborators via git.
Corky syncs threads from any IMAP provider (Gmail, Protonmail Bridge, self-hosted) into mail/conversations/ — one file per thread, regardless of source. A thread that arrives via both Gmail and Protonmail merges into one file. Labels, accounts, and contacts are metadata, not directory structure.
Install
pip install corky # or: pipx install corky
Or via shell installer:
curl -sSf https://raw.githubusercontent.com/btakita/corky/main/install.sh | sh
Or from source: cargo install --path .
Quick start
corky init --user you@gmail.com
# Edit mail/.corky.toml with credentials
corky sync
See the getting started guide for full setup instructions.
Key features
- Flat conversations — one Markdown file per thread, all sources merged
- Sandboxed sharing — label-based routing gives collaborators only the threads you choose
- AI-native — files, CLI, and git work the same for humans and agents
- Multi-account — Gmail, Protonmail Bridge, generic IMAP, all in one directory
- Social posting — draft and publish to LinkedIn (and future platforms) via OAuth
- Scheduling — schedule email and social drafts for timed publishing
- Topics — organize conversations with shared topic context across mailboxes
- Transcription — whisper-rs audio transcription with speaker diarization via pyannote-rs
- Watch daemon — poll IMAP and run scheduled publishing with
corky watch
Usage
corky sync # Incremental IMAP sync
corky unanswered # Threads awaiting a reply
corky draft push FILE # Save as email draft
corky mailbox add NAME --label LABEL # Share threads
corky contact sync # Sync contact CLAUDE.md between root and mailboxes
corky filter push # Push Gmail filters from .corky.toml
corky filter push --dry-run # Preview filter changes
corky filter pull # Show current Gmail filters
corky filter auth # Authenticate for Gmail filter API
corky linkedin draft # Create LinkedIn draft
corky linkedin publish FILE # Publish to LinkedIn
corky schedule run # Publish due scheduled items
corky topics list # Show configured topics
corky watch # Poll, sync, and publish scheduled
corky transcribe FILE # Transcribe audio to text
corky transcribe FILE --diarize # With speaker diarization
corky --help # All commands
Transcription & speaker diarization
Transcribe audio files with optional speaker diarization. Supports WAV, MP3, FLAC, OGG, M4A, AMR, and more.
# Basic transcription
corky transcribe call.amr -o transcript.md
# With speaker diarization (interactive labeling)
corky transcribe call.amr --diarize -o transcript.md
# With pre-assigned speaker names
corky transcribe call.amr --diarize --speakers "Alice,Bob" -o transcript.md
Diarization uses pyannote-rs (ONNX Runtime) to detect and label speakers. When run without --speakers, corky shows text excerpts per speaker and prompts you to assign names interactively. ONNX models auto-download on first use — no gated HuggingFace access required.
Feature flags: Transcription (CPU) is enabled by default. For GPU acceleration, install with --features transcribe-cuda. Diarization requires --features diarize.
This feature was designed collaboratively using agent-doc interactive document sessions.
Telegram import
Import Telegram Desktop JSON exports into corky conversations:
corky sync telegram-import ~/Downloads/telegram-export/result.json
corky sync telegram-import ~/Downloads/telegram-export/ # directory of exports
corky sync telegram-import result.json --label personal --account tg-personal
Export from Telegram Desktop: Settings > Advanced > Export Telegram data > JSON format.
Slack import
Import Slack workspace export ZIPs:
corky slack import ~/Downloads/my-workspace-export.zip
corky slack import export.zip --label work --account slack-work
Export from Slack: Workspace admin > Settings > Import/Export Data > Export.
See the command reference for details.
Development
cp .corky.toml.example mail/.corky.toml
make check # clippy + test
make release # build + symlink to .bin/corky
See building and conventions.
AI agent instructions
Project instructions live in AGENTS.md (symlinked as CLAUDE.md). Personal overrides go in CLAUDE.local.md / AGENTS.local.md (gitignored).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file corky-0.16.0.tar.gz.
File metadata
- Download URL: corky-0.16.0.tar.gz
- Upload date:
- Size: 298.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efb25e9a5066731c2d2883993e5289ff08187f857e88529d04a1595f6bf2c062
|
|
| MD5 |
80f6edf801650688a6e67dd6b85e7b4f
|
|
| BLAKE2b-256 |
d9bef2752533490d7d8667c29400f595dd26f32bc54d5f62c53ab00f8ebf6c72
|
File details
Details for the file corky-0.16.0-py3-none-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: corky-0.16.0-py3-none-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 8.3 MB
- Tags: Python 3, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
609f461e28de259e34d1537c9dccde3e4b19acf20cf3397873442a91ca4913eb
|
|
| MD5 |
cae28c9d088463f036c81202c286cde9
|
|
| BLAKE2b-256 |
84072df7baccd59c6698789d2692a2d41d0195f511e34621885f4488abf7e449
|