Install the CLI
Use Homebrew on macOS, or npm anywhere Node.js is available.
brew install GurinderRawala/omnikey/omnikey-cli
# or
npm install -g omnikey-cli
A practical guide for local setup, CLI commands, usage metrics, browser access, scheduled jobs, MCP tools, saved instructions, Telegram control, and the latest release notes.
Install the CLI, configure a provider, start the daemon, and open the desktop app.
omniAgentTurn omniAgent into a specialist with task instructions, project paths, and tools.
@ CommandsUse inline commands anywhere to rewrite text, ask questions, or run omniAgent.
CLI CommandsRun agents, manage services, open browser access, schedule jobs, and control MCPs.
Usage MetricsEnable token recording and review consumption in the desktop Usage page.
Browser AccessGrant OmniKey a dedicated authenticated browser profile for private web pages.
Scheduled JobsConfigure recurring and one-time automation from the desktop app or CLI.
MCP ServersConnect external tools over stdio, HTTP, or SSE and clarify built-in defaults.
Telegram IntegrationCreate a bot, save credentials, run the daemon, and use remote commands.
OmniKey runs a local backend daemon and a desktop app. The CLI is the fastest way to configure providers, start services, and manage optional integrations.
Use Homebrew on macOS, or npm anywhere Node.js is available.
brew install GurinderRawala/omnikey/omnikey-cli
# or
npm install -g omnikey-cli
The onboarding flow writes your local OmniKey config and validates the provider details before the daemon starts.
omnikey onboard
Keep the daemon running while the desktop app, Telegram bridge, and agent sessions are active.
omnikey daemon
Download the native app and sign in to the same local daemon from your machine.
omniAgent is the task-focused chat experience inside the desktop app. Add a saved task instruction to transform it into a coding agent, research assistant, release reviewer, support analyst, operations helper, or any other specialist workflow. Then provide the concrete goal in chat, including a project path, URL, file, or data source when the task should start from a specific place.
You can also invoke omniAgent from any app: type an @omniAgent instruction,
select that text, and press ⌘T / Ctrl+T.
OmniKey sends the selected command to the agent without requiring you to switch to the
chat window first.
Task instructions define the specialist behavior: how omniAgent should inspect context, which tools it can use, what quality bar to follow, how to validate the work, and what to include in the final answer. Save reusable instructions for common roles, then select the right one before starting a chat.
Type the outcome you want in natural language. For project work, include the
local path, such as /Users/you/projects/app, plus the exact task:
fix a bug, review changes, add a feature, investigate logs, write docs, or run a
release check. omniAgent uses the path as the working context and begins from
there.
While the task runs, omniAgent can use every enabled tool it is connected to, including MCP servers, terminal commands, filesystem access, web fetch, and an authenticated browser profile for pages that require login. Tool availability depends on your local setup, enabled MCP servers, and browser access settings.
In /Users/you/projects/api, review the current changes, fix any blockers, and
run the smallest meaningful verification. omniAgent will work from that path
and use the tools available to complete the task.
Prefix selected text with @ when you want OmniKey to follow an inline
instruction instead of only applying a fixed shortcut behavior. Write the command in
any app, select it, and press an OmniKey shortcut. OmniKey reads the selected text,
uses your configured provider, and pastes the result back in place.
| Command or shortcut | What it does | How to use it |
|---|---|---|
⌘E / Ctrl+E |
Enhance a Prompt: expands rough text into a stronger, clearer prompt. | Select any text in any app, then press the enhance shortcut. |
⌘G / Ctrl+G |
Fix Grammar & Clarity: corrects spelling, grammar, and readability. | Select text, press the grammar shortcut, and OmniKey preserves your meaning. |
⌘T / Ctrl+T |
Run a Custom Task: applies your saved task instruction to selected text. | Create task instructions in the menu bar app, then select text and run the task shortcut. |
@omnikeyai |
Ask OmniKey Anything: runs the instruction you write after the command. | Start selected text with @omnikeyai, then press any OmniKey shortcut. |
@omniAgent |
Run the AI agent: starts an omniAgent task from selected text. | Start selected text with @omniAgent, then press ⌘T / Ctrl+T. |
@omnikeyai
Use @omnikeyai for flexible one-shot instructions that should return a
direct answer or transformed text. It is powered by your configured provider, such
as OpenAI, Anthropic, Gemini, or an OpenAI-compatible open model.
@omnikeyai write this text into valid markdown format
This is best for formatting, rewriting, summarizing, translating, drafting, or answering a focused question without launching a full agent workflow.
@omniAgent
Use @omniAgent when the task needs more than a quick text response.
Select the command and press ⌘T /
Ctrl+T. omniAgent can gather context from your terminal
and the web, combine saved task instructions if configured, use connected MCPs and
authenticated browser access, complete the task, and paste the result.
@omniAgent find all TODO comments in my project and summarise them
Add a project path, URL, or file name when you want the agent to start from a
specific place, for example @omniAgent in /Users/you/projects/api, review the
current changes and run validation.
OmniKey supports OpenAI, Anthropic, Gemini, and Open Model providers. The Open Model option is for OpenAI-compatible APIs such as self-hosted or open source model gateways.
omnikey onboard or update
provider settings in the desktop app. The active provider and model can be changed
before each chat, scheduled job, or Telegram task.
| Provider | Use it for | Common settings |
|---|---|---|
| OpenAI | GPT models and Responses API workflows. | OPENAI_API_KEY |
| Anthropic | Claude Sonnet or Opus agent runs. | ANTHROPIC_API_KEY |
| Gemini | Google Gemini models. | GEMINI_API_KEY |
| Open Model | Any OpenAI-compatible model endpoint. | OPEN_MODEL_API_KEY, OPEN_MODEL_BASE_URL |
The desktop app is the easiest place to chat with OmniAgent, but the CLI is useful for setup, automation, services, and quick maintenance. Most commands expect the local daemon to be available.
| Command | Use it for |
|---|---|
omnikey onboard |
Configure your first provider and write the local OmniKey config. |
omnikey daemon |
Start the backend used by the desktop app, CLI commands, and agent sessions. |
omnikey status |
Check whether the local daemon is reachable and healthy. |
omnikey grant-browser-access |
Run the one-time guided setup for authenticated browser tab reading. |
omnikey browser open |
Reopen the saved OmniKey browser profile after browser access is configured. |
omnikey schedule ... |
Create, list, remove, or immediately run scheduled jobs. |
omnikey mcp ... |
Add, list, update, toggle, or remove MCP servers available to the agent. |
omnikey telegram ... |
Install, start, stop, restart, inspect, and tail logs for the Telegram daemon. |
OmniKey can record per-call usage metrics so the desktop Usage page shows how many tokens your AI calls consume. Usage recording is controlled from the Settings window and is persisted in the local agent settings database, so changes take effect without restarting the daemon.
Open Settings → Agent Access in the desktop app and turn on Usage recording. When enabled, OmniKey stores the model, mode, thread/session, and token counts for each AI call. Self-hosted installs keep detailed recording off by default, so enable it if you want the Usage page to populate from that point forward.
In the desktop Settings window, choose Usage. The page reads
recorded metrics from /api/usage and lets you filter by time range
and provider. It reports token counts only, using values recorded from actual AI
calls instead of estimated provider pricing.
The Usage page shows total tokens, input tokens, output tokens, request count, average daily tokens, daily token split, tokens by provider/model, and recent sessions with recorded token totals. Use it to spot heavy workflows, compare models, and understand how much context each agent session consumes.
Browser access is for pages that normal web fetch cannot reach, such as private dashboards, internal docs, or account pages. OmniKey uses a dedicated browser profile so your main browser profile is not modified.
Run the CLI flow once. It detects supported browsers, creates a saved debug
profile under ~/.omnikey/browser-debug-profiles/, finds a port,
registers a login startup entry, launches the browser, and verifies access.
omnikey grant-browser-access
Sign in to the sites OmniAgent should use inside the opened OmniKey browser profile. Those sessions persist between restarts.
Reopen the saved profile whenever you need to refresh logins or start the debug browser manually.
omnikey browser open
Re-run omnikey grant-browser-access to update the browser, profile,
port, or startup behavior. On macOS Apple Events mode may require enabling
Allow JavaScript from Apple Events in the selected browser.
Use the manual method only if the guided CLI flow is unavailable or you need to wire a custom browser/profile yourself. OmniKey supports Chrome, Brave, and Edge on Windows; and Chrome, Brave, Edge, Arc, Vivaldi, Opera, Chromium, and Safari on macOS.
Modern Chrome-based browsers require --remote-debugging-port to use
a dedicated --user-data-dir, not your everyday browser profile.
Create a profile folder, close every browser window, and launch the browser from
PowerShell.
mkdir "$env:USERPROFILE\.omnikey\browser-debug-profiles\chrome-default"
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
'--remote-debugging-port=9222' `
"--user-data-dir=$env:USERPROFILE\.omnikey\browser-debug-profiles\chrome-default" `
'--no-first-run' '--no-default-browser-check'
Sign in inside the fresh window. To start it on login, add the same command as a
Registry Run value under
HKCU\Software\Microsoft\Windows\CurrentVersion\Run.
For Chrome-based browsers on macOS, create a dedicated profile folder, quit the browser fully with ⌘Q, and launch it from Terminal with a debug port.
mkdir -p ~/.omnikey/browser-debug-profiles/chrome-default
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=9222 \
--user-data-dir="$HOME/.omnikey/browser-debug-profiles/chrome-default" \
--no-first-run --no-default-browser-check
Replace the app path for Brave, Edge, Arc, Vivaldi, Opera, or Chromium. To
auto-start on login, create a launchd agent at
~/Library/LaunchAgents/com.omnikey.browser-debug.plist with
RunAtLoad = true pointing to the same command.
Chrome, Brave, Edge, Arc, Vivaldi, Opera, and Chromium can expose tab content through Apple Events. In the browser menu bar, open View → Developer → Allow JavaScript from Apple Events, make sure it is checked, then restart the browser.
For Safari, go to Safari → Settings → Advanced, enable Show features for web developers, then open Develop → Allow JavaScript from Apple Events and make sure it is checked.
Scheduled jobs run OmniAgent prompts on a recurring cadence or at a one-time date and time. Use them for status reports, reminders, routine research, cleanup checks, or any repeatable agent workflow.
From the OmniKey menu bar on macOS or system tray on Windows, choose Scheduled Jobs. The window shows each job, whether it is enabled, and when it will run next.
Click Add Job, enter a clear label, write the prompt OmniAgent should run, choose the model or instruction set if needed, and select either a recurring schedule or a one-time run time.
Use Enable/Disable to pause work without deleting it, Edit to adjust prompts or timing, and Run Now to verify the job immediately.
| CLI command | Action |
|---|---|
omnikey schedule add |
Create a job with an interactive label, prompt, schedule type, and timing flow. |
omnikey schedule list |
List jobs with status and next run details. |
omnikey schedule remove |
Choose a job interactively and confirm deletion. |
omnikey schedule run-now <job-id> |
Trigger a scheduled job immediately without waiting for its next run. |
MCP servers expose tool capabilities to OmniAgent, such as filesystem access, browser automation, GitHub, databases, internal APIs, or custom company tools. Once a server is registered and enabled, OmniAgent can discover and call its tools when they are relevant to the task.
Open MCP Servers from the menu bar or system tray. Add a server, choose stdio, HTTP, or SSE, then provide the command, URL, arguments, headers, and environment variables required by that server. Toggle a server off to keep it configured but unavailable to agents.
omnikey mcp add
omnikey mcp list
omnikey mcp remove
omnikey mcp toggle <id>
omnikey mcp update <id>
The add and update flows are interactive and reuse existing values as defaults when editing.
The Telegram daemon lets you start, resume, stop, and inspect agent sessions from a configured chat. Commands from other chats are ignored.
Open @BotFather,
run /newbot, and save the token as
TELEGRAM_BOT_TOKEN.
Send your bot a message, then fetch updates and copy the
chat.id. Group and channel IDs are negative.
curl "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates"
The CLI prompts for missing credentials, validates the token, and installs the local service.
omnikey telegram start
# or start the backend and Telegram bridge together
omnikey daemon --telegram
| Command | Action |
|---|---|
/cmd |
Start a guided OmniAgent task or resume a recent session. |
/cmd --verbose |
Stream shell output, tool calls, reasoning updates, and final answers. |
/model |
Choose the active model for the current provider. |
/task |
Show the active reasoning snapshot or last final answer. |
/stop |
Abort the running session cleanly. |
OMNIKEY_TELEGRAM_PORT, defaulting to 6666, so it does not
collide with generic PORT settings from other apps.Saved instructions are reusable guidance blocks for common workflows. They are separate from MCP servers: instructions shape how the agent behaves, while MCP servers provide additional tools the agent may call.
New installs seed a Coding Agent instruction set if it is missing. It asks the agent to inspect the repository first, keep edits scoped, preserve user work, validate changes, and report what changed.
Review current changes first.
Keep edits minimal and aligned with the codebase.
Use terminal, file, git, Playwright, or MCP tools when they help.
Run focused validation and report remaining risk.
In the desktop app, choose a saved instruction before starting a task, or mention the instruction by name in your prompt. While a run is active, send live steering from chat to add guidance without starting a separate follow-up session.
These notes sync from GitHub Releases when available. The bundled summary stays visible if GitHub cannot be reached.
OPEN_MODEL_API_KEY and OPEN_MODEL_BASE_URL.