OpenVibez is a local-first desktop AI coding assistant built with Electron, React, and TypeScript.
It connects directly to the providers you already use, stores secrets in your OS keychain, keeps app data in local SQLite, and runs provider and shell orchestration in the Electron main process instead of a hosted relay.
Status: Early alpha.
Listen bub: this is sketchy, experimental, vibey software. It can run local shell commands, supports elevated/root-style execution modes, and absolutely should not be treated like a polite little sandboxed toy. If you point it at something important, do that with your eyes open.
- Direct provider connections with no OpenVibez cloud relay
- Local persistence for sessions, messages, settings, usage, and run recovery state
- OS keychain secret storage via
keytar - Streaming chat with live status updates and trace/timeline output
- Workspace attachment with trust levels and scoped vs root execution modes
- Command policy enforcement for high-risk commands, read-only workspaces, and out-of-scope cwd access
- Per-provider model sync and selection
- Markdown rendering with syntax highlighting in chat messages
- 30-day token and cost summary in Settings
In plain English: it talks straight to model providers, keeps most of its mess on your machine, and is trying very hard to be useful before it is respectable.
| Provider | Status | Notes |
|---|---|---|
| OpenAI API | Shipped | Native OpenAI path, model sync, custom base URL / OpenAI-compatible endpoints, optional background-mode pilot |
| ChatGPT subscription | Shipped | Codex device login flow, approval policy controls, optional output schema, Codex SDK pilot fallback path |
| Anthropic | Shipped | Native provider connection plus autonomous local CLI execution flow |
| Gemini | Shipped | Native Gemini provider path and model sync |
| OpenRouter | Shipped | Native OpenRouter provider path, provider headers, pricing sync, cost attribution, autonomous local CLI execution with direct-response fallback |
| Grok (xAI) | Shipped | Native Grok provider path with direct xAI API support and autonomous local CLI execution |
| Ollama | Shipped | Local models, diagnostics, runtime controls, native tool-calling path with protocol fallback |
- Electron desktop app with React renderer and typed preload IPC bridge
- Main-process ownership of secrets, DB access, provider calls, background jobs, and shell execution
- SQLite storage for providers, model profiles, workspaces, sessions, messages, usage events, settings, assistant runs, and background jobs
- Automatic session title generation from conversation context
- Streaming assistant output with cancellable in-flight runs
- Trace rendering for plan, thought, action, command, and command-result events
- Per-session timeline persistence in app settings
- Restart reconciliation for interrupted runs, plus OpenAI background polling for long-running responses
- Attach local projects as workspaces
- Trust levels:
trusted,read_only,untrusted - Access modes:
scopedandroot - Policy gates:
scopedcommands must stay inside the selected workspaceread_onlyworkspaces block mutating commandsuntrustedworkspaces block shell execution- when a workspace is selected,
rootmode requires it to be trusted - known high-risk commands are blocked
- OpenAI-compatible endpoint profiles with saved defaults
- OpenRouter app origin/title controls and synced pricing map
- Ollama diagnostics plus temperature, output-token, and
num_ctxcontrols - Codex approval-policy and output-schema controls
openvibez/
├── apps/desktop/ # Electron app (main, preload, renderer)
├── db/ # Drizzle schema + migrations
├── docs/ # specs and architecture notes
└── packages/shared/ # shared contracts/types
git clone <repo-url> OpenVibez
cd OpenVibez
npm install
npm run devOther useful commands:
npm run build
npm run typecheck
npm run db:generate
npm run db:studio- Open Settings.
- Add a provider.
- Save a key or complete ChatGPT device login.
- Run Save + Test or Check to sync models.
- Start a session and pick a model/access mode.
If everything boots first try, act normal. Nobody likes a showoff.
| Variable | Description |
|---|---|
OPENVIBEZ_DEVTOOLS |
Set to 1 to auto-open DevTools on launch |
OPENVIBEZ_CODEX_BIN |
Absolute path to the Codex CLI binary for subscription mode |
- Code block actions: copy, save/apply-to-file, and tighter code review ergonomics
- Conversation search, filtering, and better session management
- System prompt controls per session or workspace
- Better session branching/forking workflows
- Provider health/status checks for stale keys, broken endpoints, and degraded local runtimes
- Broader provider-native tool use instead of compatibility/prompt-protocol fallbacks where possible
- Stronger long-run recovery and resume behavior outside the current OpenAI background pilot
- More explicit per-provider presets and model defaults
- Packaged release workflow and auto-update support
- Opt-in crash reporting / diagnostics
- Headless or CLI companion mode
- Extension/plugin surface for custom providers or tools
- Automated test coverage for provider flows, restart recovery, and command-policy enforcement
| Layer | Stack |
|---|---|
| Desktop shell | Electron 39 |
| UI | React 19, Vite 7, TypeScript 5.9 |
| Styling | Tailwind CSS, Radix UI |
| State | Zustand |
| Persistence | SQLite + better-sqlite3, Drizzle ORM |
| Secrets | keytar / OS keychain |
| Providers | OpenAI SDK, Codex CLI / SDK pilot, direct provider integrations |
MIT
Ya I also vibed the README.

