Privacy-first desktop app for repurposing content into platform-ready formats using Claude AI
Features • Installation • Usage • Development • Privacy
ContentEngine transforms your written content into 6 platform-specific formats in one click. All processing happens locally—your data never leaves your device except for Claude API calls.
- 📝 Multi-Format Generation: Transform content into Twitter threads, LinkedIn posts, Instagram captions, newsletters, email sequences, and summaries
- 🎨 Brand Voice Profiles: Analyze writing samples to create custom brand voices
- 📊 Generation History: Browse, search, and manage all past generations
- 💾 Markdown Export: Export all formats to universally-compatible Markdown files
- 🔒 Local-First: All data stored on your device—no cloud sync, no tracking
- 📈 Usage Tracking: Monitor monthly generation usage with configurable limits
- Twitter/X Thread
- LinkedIn Post
- Instagram Caption
- Newsletter excerpt
- Email Sequence (3-part)
- Summary
Download the latest release for your platform:
- macOS:
ContentEngine-macos-universal.dmg - Windows:
ContentEngine-windows-x64.msi - Linux:
ContentEngine-linux-x64.AppImage
Use the releases page for installation assets and platform-specific install instructions.
- Install prerequisites: Node.js 20+, pnpm 8+, Rust 1.70+, and Tauri dependencies.
- Install dependencies:
pnpm install - Start dev app:
pnpm tauri:dev
- Launch ContentEngine
- Add API Key: Settings → Enter your Claude API key (get one here)
- Create Content: Paste text or enter a URL
- Select Formats: Choose which platforms you need
- Generate: Click generate and get all formats instantly
- Navigate to Brand Voice page
- Upload 1-10 writing samples
- Claude analyzes and extracts your unique voice
- Set as default to apply to all generations
- Go to History page
- Click any generation
- Click Export to Markdown
- Files saved to
{app_data_dir}/exports/
Your data stays on your device. We don't collect analytics, crash reports, or telemetry.
- All content stored locally in SQLite
- API key secured in OS keyring
- No cloud sync, no third-party tracking
- See PRIVACY.md for details
Frontend:
- React 19 + TypeScript
- Zustand (state management)
- Tailwind CSS 4
- Vite 7
Backend:
- Rust + Tauri v2
- SQLite (local database)
- Tracing (structured logging)
- reqwest (HTTP client)
Testing:
- Vitest (frontend)
- Cargo test (backend)
- 85+ tests, 48% coverage
- Node.js 20+ + pnpm 8+
- Rust 1.70+
- Tauri prerequisites (install guide)
# Install dependencies
pnpm install
# Run app in normal dev mode
pnpm tauri:dev
# Run app in lean dev mode (temp build caches + auto-clean on exit)
pnpm lean:dev
# Run tests
pnpm test # Frontend
cargo test --manifest-path src-tauri/Cargo.toml # Backend
# Lint & format
pnpm lint
pnpm formatpnpm tauri:devkeeps build artifacts (faster restarts, higher disk usage)pnpm lean:devstores Rust/Vite build caches in a temporary folder and removes heavy artifacts on exit (lower disk usage, slower cold starts)- If port
1420is already used,pnpm lean:devautomatically tries ports1421-1425
# Remove heavy build artifacts only (safe for daily use)
pnpm clean:heavy
# Remove all reproducible local caches, including node_modules
pnpm clean:local# Production build
pnpm tauri:build
# Output: src-tauri/target/release/- Open an issue with a clear problem statement and reproduction details.
- Keep pull requests focused and include validation steps.
- For code changes, run
pnpm type-check,pnpm test, andpnpm buildbefore submitting.
- Full-text search in history
- Batch URL processing
- Custom format templates
- Dark mode
- Auto-updater
MIT License - see LICENSE for details.
Made with ❤️ using Claude AI