The Problem

Live conversations across language barriers are broken by latency and clunky tooling. Standard video conferencing captions translate slowly, desktop translators require manual input, and most speech-to-text pipelines add seconds of delay that make real-time dialogue impossible. Sokuji targets this gap with an Electron desktop app and browser extension that translate speech as it happens, using OpenAI's Realtime API for low-latency audio processing.

What This Does

Sokuji is a cross-platform desktop application (Windows, macOS, Linux) built with Electron 34 and React. It captures system or microphone audio, sends it to AI providers for translation, and renders live subtitles. The core logic lives in electron/main.js with platform-specific audio handlers in electron/windows-audio-utils.js, electron/macos-audio-utils.js, and electron/pulseaudio-utils.js for Linux.

The repo also ships a Chromium browser extension (extension/) with 60+ locale files and site-specific plugins for Google Meet and Microsoft Teams. The extension mirrors the desktop app's functionality and shares the same provider integrations.

Provider support spans OpenAI, Google Gemini, Palabra.ai, and Kizuna AI, plus any OpenAI-compatible endpoint. An evaluation harness under evals/ runs audio test cases through a CLI runner (evals/runner/cli.ts) with LLM-based judging.

How To Use It

The repo does not include a package.json in the file listing, so exact install commands are not verifiable. The build pipeline is GitHub Actions (.github/workflows/build.yml) and the Electron config lives in .electronforge.config.js, suggesting electron-forge for packaging.

Setup — Clone the repo, install dependencies with npm install (or pnpm install if the lockfile indicates it), then run npm start to launch the Electron app. The build script build-pkg.sh handles packaging.

Configuration — Copy .env.example to .env and set your API keys for the providers you intend to use. The app requires at minimum an OpenAI API key for the Realtime API path.

Running — For the desktop app: npm start. For the extension: load extension/ as an unpacked extension in Chrome/Edge developer mode. The eval harness runs via evals/runner/cli.ts with npx tsx evals/runner/cli.ts.

Real-World Use

A support team handling international customers can run Sokuji on a shared machine, point it at the meeting's system audio, and get live English subtitles from a Japanese-speaking client. The system audio capture (documented in docs/SYSTEMAUDIOCAPTURE.md) means no per-speaker setup — just join the call and read the overlay.

Code Health & Issues

High — No package.json in the file listing. This is either an analysis gap or a structural problem. Without it, dependency management and build reproducibility are unverifiable. Med — The repo is a fork of kizuna-ai-lab/sokuji with 0 stars. The original has 1,068 stars and active CI, but this fork's divergence is unknown. Check git log for upstream sync. Med — docs/ contains 77 files including tutorials and store listings, but the absence of a src/ directory in the structure is suspicious for a React app. The UI code may live elsewhere or be embedded in the Electron main process. Low — .gitmodules is present, suggesting submodules that are not shown in the file listing. This can break builds if submodules are not initialized. Low — 11 test files exist but no test runner config is visible. The eval suite (evals/) is the primary quality gate, not unit tests.

The Bottom Line

Sokuji is a functional live-translation tool with real deployment evidence — browser store listings, platform-specific audio handling, and a proper eval harness. The multi-provider support and system audio capture are genuine differentiators. The missing package.json and ambiguous fork status are the main concerns; verify those before trusting the build. Suitable for teams that need real-time multilingual meetings and have the API budget to sustain it.