CASOON Open Source
A control center for your repository.
opi turns a project's scripts into a keyboard-driven list — grouped, labelled, with the package manager detected — and puts health, security, updates and clean one key away. npm, pnpm, bun and Cargo, without configuring anything first.
curl -fsSL https://raw.githubusercontent.com/casoon/opi/main/install.sh | shcargo install opi
- configuration files needed
- 0
- ecosystems read: npm, pnpm, bun, Cargo
- 4
- areas beside the scripts, one key or flag each
- 5
- prebuilt targets for macOS and Linux
- 4
What it does
Scripts first
The start screen is the script list. Enter runs the highlighted entry, / filters across every group, and the script replaces the opi process — Ctrl-C reaches your dev server and its exit code reaches your shell.
Orchestration, not reimplementation
Health runs the tools the project already depends on — Biome, ESLint, tsc, astro check, Vitest, cargo — concurrently, and relays what they said. Output is parsed only where the format is documented.
Your scripts keep their names
health, clean and release are script names in real projects, so every built-in area is a flag or a hotkey, never a bare word.
opi writes nothing
Clean removes what you choose; updates are applied by the package manager, followed by the commit checks. No package.json and no lockfile is ever rewritten by opi itself.
Generated at build time
All examples →opi cargo 7 entries · 3 groups Development cargo run Build and run the binary Build cargo build Build in release mode cargo check Type-check without building Quality cargo clippy Lint with warnings denied cargo doc Build and open the documentation cargo fmt Format the source cargo test Run the test suite H Health C Clean S Security U Updates
Captured from opi 0.11.0 on its own repository with site/captures/capture.sh, piped — the showcase has the other areas.
site/captures/list.txtQuickstart
Install, change into a project, type opi. The full walkthrough lives in the documentation.
- Install the release binary with the install script, or build it with
cargo install opi. - Change into any directory of a project with a
package.jsonorCargo.toml. - Run
opiand pick a script — or name it:opi dev.
opi # navigate: ↓ ↓ Enter
opi # filter: /dep ↵
opi dev # direct, no interface
opi build --verbose # arguments go to the script
opi blog/dev # a workspace member's script{
"scripts": { "dev": "astro dev", "deploy": "wrangler deploy" },
"scripts-info": { "dev": "Start development server" },
"opi": {
"scripts": {
"dev": { "favorite": true },
"deploy": { "group": "Deployment", "confirm": true }
}
}
}