|
| 1 | +# CodeForge |
| 2 | + |
| 3 | +A Tauri-based AI code editor that wraps Claude Code and Codex into a native desktop app with multi-thread sessions, an embedded browser, and a sleek dark UI. |
| 4 | + |
| 5 | +> **Note**: This project is under active development and is not yet production-ready. |
| 6 | +
|
| 7 | +## Features |
| 8 | + |
| 9 | +- **Multi-Thread Sessions** - Run multiple Claude Code / Codex conversations in parallel tabs |
| 10 | +- **Real-Time Streaming** - Token-by-token response streaming via Claude's stream-json protocol |
| 11 | +- **Model Selector** - Switch between Opus, Sonnet, Haiku per-message |
| 12 | +- **Embedded Browser** - CDP screencast-powered browser pane with element inspector for extracting HTML/CSS |
| 13 | +- **Diff Editor** - Git-powered diff viewer pane showing all changed files with syntax highlighting |
| 14 | +- **File Attachments** - Drag-and-drop files or use the paperclip button to attach context |
| 15 | +- **Auto Thread Naming** - Spawns a separate Claude/Codex process to name threads after 3 messages |
| 16 | +- **Command Palette** - Cmd+K quick actions |
| 17 | +- **Cross-Message Search** - Cmd+Shift+F to search across all threads |
| 18 | +- **Usage Dashboard** - Token counts, costs, and model breakdown |
| 19 | +- **Split View** - Side-by-side thread comparison |
| 20 | +- **Worktree Management** - Git worktree per thread for isolated changes |
| 21 | +- **Per-Thread Browser** - Each thread gets its own browser instance with independent state |
| 22 | + |
| 23 | +## Architecture |
| 24 | + |
| 25 | +``` |
| 26 | +crates/ |
| 27 | + session/ # Claude Code & Codex subprocess management |
| 28 | + persistence/ # SQLite database (threads, messages, settings, usage) |
| 29 | + tauri-app/ # Tauri shell, commands, and SolidJS frontend |
| 30 | + frontend/ # SolidJS + Vite |
| 31 | + browser-sidecar/ # Playwright CDP screencast process |
| 32 | +``` |
| 33 | + |
| 34 | +## Requirements |
| 35 | + |
| 36 | +- macOS / Linux / Windows |
| 37 | +- [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code) installed and authenticated |
| 38 | +- Node.js 18+ |
| 39 | +- Rust 1.75+ |
| 40 | +- Playwright Chromium (`npx playwright install chromium`) |
| 41 | + |
| 42 | +## Quick Start |
| 43 | + |
| 44 | +```bash |
| 45 | +# Clone |
| 46 | +git clone https://github.com/Swofty-Developments/CodeForge.git |
| 47 | +cd CodeForge |
| 48 | + |
| 49 | +# Install frontend dependencies |
| 50 | +cd crates/tauri-app/frontend && npm install && cd ../../.. |
| 51 | + |
| 52 | +# Install Playwright browser |
| 53 | +cd crates/tauri-app/frontend && npx playwright install chromium && cd ../../.. |
| 54 | + |
| 55 | +# Run in dev mode |
| 56 | +cargo tauri dev |
| 57 | +``` |
| 58 | + |
| 59 | +## Testing |
| 60 | + |
| 61 | +```bash |
| 62 | +# Playwright E2E tests (21 tests) |
| 63 | +cd crates/tauri-app/frontend && npm run test:e2e |
| 64 | + |
| 65 | +# Rust integration tests (real Claude Code) |
| 66 | +cargo test -p codeforge-session --test claude_integration |
| 67 | +``` |
| 68 | + |
| 69 | +## Keyboard Shortcuts |
| 70 | + |
| 71 | +| Shortcut | Action | |
| 72 | +|----------|--------| |
| 73 | +| Cmd+K | Command palette | |
| 74 | +| Cmd+Shift+F | Search across messages | |
| 75 | +| Cmd+Shift+B | Toggle browser pane | |
| 76 | +| Cmd+Shift+D | Toggle diff view | |
| 77 | +| Cmd+Shift+U | Usage dashboard | |
| 78 | +| Cmd+\ | Split view | |
| 79 | +| Enter | Send message | |
| 80 | +| Shift+Enter | New line | |
| 81 | + |
| 82 | +## Tech Stack |
| 83 | + |
| 84 | +- **Backend**: Rust, Tauri 2, SQLite |
| 85 | +- **Frontend**: SolidJS, Vite, TypeScript |
| 86 | +- **Browser**: Playwright, Chrome DevTools Protocol |
| 87 | +- **AI**: Claude Code CLI, Codex CLI |
| 88 | +- **Design**: DM Sans + JetBrains Mono, custom dark theme |
| 89 | + |
| 90 | +## License |
| 91 | + |
| 92 | +See repository for license details. |
0 commit comments