oolong is a macOS desktop client for fast text translation, rewriting, and context-aware polishing through local AI CLIs such as codex exec and claude -p.
It is built for short daily writing workflows: paste text, choose a context, submit, copy the result, and keep recent work in history.
- Context-based actions: configure reusable contexts for translation, native English polishing, release notes, or project-specific rewrites.
- Provider choice: switch between Codex and Claude from the app.
- Bilingual interface: switch the app UI, status messages, and default action labels between English and Chinese.
- CLI-powered output: run
codex execorclaude -plocally instead of depending on a hosted app backend. - Local history: keep recent input/output pairs locally with a configurable limit.
- Global shortcuts: bring oolong forward, or query the current clipboard contents from anywhere on macOS.
- macOS Service: install
oolong.translate contentfor translating selected text from the Services menu. - Proxy and timeout controls: inject proxy environment variables and avoid silent long-running provider calls.
- Release automation: tag-based GitHub Actions workflow builds macOS
.dmgand.zippackages.
Settings are organized into focused tabs for day-to-day configuration and provider tuning.
| Tab | What it controls |
|---|---|
| General | App language, history limit, provider timeout |
| Shortcuts | Open oolong and query clipboard text shortcuts |
| Provider | Codex/Claude executable path, model, Codex reasoning effort, Codex profile |
| Contexts | User-facing action labels and prompts |
| Proxy | http_proxy, https_proxy, all_proxy, and uppercase variants for provider processes |
pnpm install
pnpm devThe browser preview uses a local mock API for UI work. The Electron app uses the real IPC and CLI execution path.
pnpm build
pnpm packagePackaged macOS artifacts are written to release/.
GitHub Actions creates a macOS release package when a version tag is pushed.
git tag v0.1.0
git push origin v0.1.0The release workflow uploads .dmg and .zip artifacts from release/.
Unsigned macOS builds may show a Gatekeeper warning. Notarization can be added later with an Apple Developer ID certificate.
- Default Codex runs with
model_reasoning_effort="low"for faster translation-style work. - Codex prompts are passed through stdin and closed immediately to avoid hanging on pipe input.
- Provider arguments are intentionally whitelisted; arbitrary CLI arguments and permission bypass flags are not exposed.

