Desktop app scaffold for an agentic development environment (Codex-Desktop style), built with Tauri v2 + Vite + React + TypeScript.
- Desktop shell with Tauri (
src-tauri) and Vite frontend (src) - Routed feature modules:
Connections(Claude + Codex via OAuth/API key mock flows)Workspace(worktree create/switch/remove + open editor stub)Git + PR(diff, AI commit message, commit, create PR mock)Terminal(session create/write/close)Automation(placeholder surface)
- Typed command envelope used across FE and Tauri commands:
CommandResult<T> = { ok: true; data: T } | { ok: false; error: { code: string; message: string } }
- Mock service adapters and state store for clickable end-to-end flows
- CI workflow for PR validation and tag-based release workflow for macOS/Windows/Linux
- Node.js 22+
- npm 10+
- Rust 1.77+
- macOS: Xcode Command Line Tools
- Windows: Visual Studio Build Tools + WebView2
- Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libappindicator3-dev \
librsvg2-dev \
patchelfnpm i
npm run tauri:devAlternative web-only UI run:
npm run devnpm run dev: start Vite onhttp://localhost:1420npm run build: type-check + build frontendnpm run lint: run ESLintnpm run test: run Vitest testsnpm run check: lint + test + buildnpm run tauri:dev: run desktop app in developmentnpm run tauri:build: create desktop bundles
src/types/contracts.ts: public FE contracts (ProviderId,AuthMode,ProviderConnectionStatus,CommandResult, worktree/git/terminal models)src/services/interfaces.ts: service interfaces (AuthService,WorktreeService,GitService,TerminalService)src/services/mock/*: in-memory implementations powering scaffold flowssrc/services/tauri/desktopCommands.ts: native command wrappers via@tauri-apps/apisrc/state/*: app store + context/actionssrc/features/*: page-level feature modulessrc-tauri/src/lib.rs: native command stubs and Tauri setup
This scaffold does not require secrets to run. Suggested variables for future integration:
VITE_CLAUDE_OAUTH_CLIENT_IDVITE_CODEX_OAUTH_CLIENT_IDVITE_GITHUB_REPOVITE_DEFAULT_EDITOR
None of these are used for real auth in this scaffold yet.
.github/workflows/ci.yml runs on pull requests and pushes to main:
npm cinpm run checkcargo check --manifest-path src-tauri/Cargo.toml
.github/workflows/release.yml runs on tags matching v* (example: v0.1.0):
- Builds Tauri artifacts on macOS, Windows, and Linux
- Publishes artifacts to a GitHub Release via
tauri-apps/tauri-action
- OAuth/API key flows are mocked, not real provider integrations
- Terminal is only fully available in Tauri runtime (web mode shows unavailable fallback)
- Git commit/PR behavior is mocked (no real GitHub API calls)
- Most native commands are still stubs for future implementation