Loading repository data…
Loading repository data…
tktcorporation / repository
Cross-platform desktop audio recorder — record mic & system audio simultaneously into separate WAV tracks. Built with Electrobun, React, and ScreenCaptureKit.
A cross-platform desktop audio recorder with multi-track support
Record microphone and system audio simultaneously into separate WAV tracks. Built with Electrobun, React, and native audio APIs.
| Platform | System Audio | Status |
|---|---|---|
| macOS (Apple Silicon) | ScreenCaptureKit (native) | ✅ Primary |
| Windows (x64) | getDisplayMedia (Web API) | ✅ Supported |
Download the latest release for your platform:
.tar.gz (extract and move to Applications).zip (extract and run)# Clone and install
git clone https://github.com/tktcorporation/cross-recorder.git
cd cross-recorder
pnpm install
# Start development
pnpm dev # Electrobun dev with watch mode
pnpm dev:hmr # Vite HMR + Electrobun (concurrent)
# Build
pnpm build # Full production build
# Quality
pnpm test # Run tests (Vitest)
pnpm lint # Lint (oxlint)
pnpm typecheck # TypeScript check
src/
├── bun/ # Main process (Bun runtime)
│ ├── services/ # RecordingManager, FileService, UpdateService
│ └── rpc.ts # Typed RPC handlers (bun ↔ webview)
├── mainview/ # Renderer (CEF / React)
│ ├── audio/ # AudioCaptureManager, PlaybackController, WavEncoder
│ ├── views/ # RecordingView, LibrarySidebar
│ ├── stores/ # Zustand state management
│ └── components/
├── shared/ # Types, RPC schema, errors, constants
└── native/ # Platform-specific code
└── macos/ # ScreenCaptureKit Swift binary
| Layer | Technology |
|---|---|
| Desktop framework | Electrobun (Bun + CEF) |
| UI | React 18 · Tailwind CSS 3 · shadcn/ui · Framer Motion |
| State | Zustand 5 |
| Audio | Web Audio API · AudioWorklet · ScreenCaptureKit (macOS) |
| Error handling | Effect.ts |
| Build | Vite 6 · pnpm · GitHub Actions |
getUserMedia (mic) + getDisplayMedia or ScreenCaptureKit (system audio)~/cross-recorder/recordings/ with JSON metadataThis project is currently private. See the repository for details.
Built with ❤️ using Electrobun