Skip to content

Installation

RequirementMinimum
Node.js24+ (uses node:sqlite)
npm9+
OSmacOS, Linux, Windows (native or WSL)
DiskAbout 50 MB for Omnodex, plus space for event logs

Omnodex runs on the same host as the agent it traces. On Windows, native Windows and WSL are separate hosts: each has its own home directory, its own agent configuration, and its own Omnodex data. Desktop apps such as Cowork and ChatGPT Desktop run on native Windows. Terminal tools you start inside WSL run in WSL.

Run the commands on this page in the shell of that host: PowerShell for native Windows, a WSL terminal for WSL, and your normal terminal on macOS and Linux. If you use agents on both native Windows and WSL, install on both. See Windows and WSL for how the two hosts fit together.

Install from npm unless you want to run unreleased changes. An npm install needs no clone or build and includes the hook handlers and the MCP proxy. A source install runs the latest code from the repository, which can be ahead of the last npm release.

Pick your install method once: the choice carries over to every other page in these docs.

In the shell of the host where your agent runs:

Terminal window
node --version
npm install -g omnodex
omnodex --version
where.exe omnodex-mcp-proxy

omnodex --version prints the release, for example 0.3.0. The hook launchers and the Omnodex plugins find an npm install on their own, so there is nothing else to configure. Continue with Install the hooks and your agent’s setup guide.

If you are switching from a source install, remove shim_paths from omnodex-config.json and proxy_bin from omnodex-proxy.json. Those point the launchers at your source build, and they win over the npm install. Keep the rest of both files, including your upstream servers.

Updating has two parts: the Omnodex runtime on each host, and, if you use one, the Omnodex plugin in your agent app. Update the runtime first. Run updates from PowerShell for native Windows agents and from a WSL terminal for WSL agents; updating one does not update the other.

In the host’s shell:

Terminal window
omnodex update
omnodex --version

omnodex update installs the latest release with npm install -g, and omnodex update --check shows what is available without installing. Omnodex also checks for a new release in the background and prints a one-line notice when there is one. npm install -g omnodex@latest does the same thing by hand.

Hooks and the MCP proxy load your install at runtime, so most updates need no per-project reinstall. Releases that change which hook events are installed still require reinstalling those hooks. For the Antigravity hook migration, run omnodex install antigravity in each project after updating. An MCP entry keeps working while the paths it names remain valid.

AgentHow it uses OmnodexAfter updating the runtime
Claude CodeProject hooksStart a new session
CoworkPluginReplace the plugin if a new plugin version is available, then fully quit and reopen Cowork
OpenAI CodexProject hooks, and the Omnodex plugin or a manual MCP server entryUpdate the plugin if needed and restart Codex, then start a new conversation
Google AntigravityProject hooks and an MCP entry or pluginUpdate the runtime, update the plugin only if needed, and reload Antigravity

Plugin versions are independent of npm and source runtime versions. A runtime update alone does not require a plugin reinstall. The current version of each plugin is listed in the release manifest, and all downloads are on Plugins. When a plugin changes, follow your agent’s update instructions and replace the existing installation rather than adding a second copy.

By default, Omnodex stores event logs and configuration in ~/.omnodex on the host where the agent runs (C:\Users\<you>\.omnodex on native Windows). Override it with the OMNODEX_HOME environment variable:

Terminal window
export OMNODEX_HOME=/path/to/your/omnodex/data

The directory contains:

  • event-log/ - the append-only event log, one JSONL file per session (source of truth)
  • traces.db - SQLite read model, derived from the event log and safe to delete
  • config.json - local configuration
  • omnodex-config.json - hook handler locations (source installs) and extra workspace roots
  • omnodex-proxy.json - MCP proxy configuration (optional)
  • stream-config.json - cloud dashboard connection, written by omnodex connect
  • launcher.log - hook and proxy launcher failures

See Configuration for the full layout.

Hooks are installed per project. Run the command from the project directory, or pass the project path as an argument.

Terminal window
omnodex install claude-code

Writes Omnodex hook entries to .claude/settings.local.json in the project. Claude Code loads them when a session starts, so start a new session afterwards. See the Claude Code guide.

After installing, omnodex install offers to connect this host to the hosted dashboard. If you do not want to connect yet, press Ctrl+C at that prompt; the hooks are already installed.

To check what is installed in a project:

Terminal window
omnodex status

Cowork does not use project hooks. It uses a plugin and the MCP proxy; see the Cowork guide.

Each host keeps its own Omnodex data. You can view them together in two ways:

  • Local dashboard: add the other host’s Omnodex directory as an extra root (dashboard.roots in config.json, or omnodex dashboard --roots <path>). See Local Dashboard.
  • Hosted dashboard: run omnodex connect on each host with the same account. Each host appears as its own machine.

To remove Omnodex hooks from a project:

Terminal window
omnodex uninstall --confirm

This removes all Omnodex hooks from the project and keeps your event data. To remove hooks for one agent only:

Terminal window
omnodex uninstall claude-code --confirm
Terminal window
# 1. Remove hooks from every project where Omnodex is installed
# (omnodex status --all lists them)
omnodex uninstall --confirm
# 2. Delete the Omnodex home: events, configuration, and cloud connection
omnodex clear --all --confirm
# 3. Remove the global command
npm uninstall -g omnodex # installed from npm
npm uninstall -g @omnodex/cli # installed from source; then delete your clone