Skip to content

OmniDevX

Batteries-included distribution of OmniDevX — the PlexusOne developer-experience telemetry domain. One import path composes the canonical event model from omnidevx-core with every available collector.

Not OmniDXI

omnidxi is Digital Experience Intelligence — product-analytics platforms (Amplitude, Mixpanel, Heap, Pendo). OmniDevX observes how developers and AI agents build software.

Overview

Composition is by constructor injection through an Engine — there is no global registry. Every canonical type, event/mode/severity constant, and provider constructor from omnidevx-core and the thick provider modules is re-exported under this one import path.

The default bundle is intended for local AI-assistant usage collection. Claude Code, Codex CLI, and Kiro CLI are constructed with their default local-store locations. Git and GitHub are still explicit because they need a repository scan scope or API credentials.

Quick Start

import "github.com/plexusone/omnidevx"

engine, err := omnidevx.NewDefault() // local Claude Code + Codex + Kiro stores
if err != nil {
    // handle
}
results, err := engine.Collect(ctx, omnidevx.CollectRequest{
    Period:  omnidevx.Period{Start: weekStart, End: weekEnd},
    Subject: omnidevx.SubjectRef{PersonID: "person:jane"},
})
// One collector failing does not discard the others' results: inspect both.
events := omnidevx.Events(results)
claude, _ := omnidevx.NewClaudeCodeCollector(omnidevx.ClaudeCodeOptions{})
codex, _ := omnidevx.NewCodexCollector(omnidevx.CodexConfig{})
kiro, _ := omnidevx.NewKiroCollector(omnidevx.KiroConfig{})
git, _ := omnidevx.NewGitCollector(omnidevx.GitOptions{Roots: []string{"~/go/src"}})
gh, _ := omnidevx.NewGitHubCollector(omnidevx.GitHubConfig{
    Token:    os.Getenv("GITHUB_TOKEN"),
    Username: "octocat",
})
engine := omnidevx.New(claude, codex, kiro, git, gh)

See Usage Guide for composition patterns and Collectors for the full list and what each one needs.

Session Recovery

The omnidevx CLI also finds, describes, and resumes your Claude Code and Codex CLI sessions:

omnidevx sessions                # newest first, with state and title
omnidevx sessions resume <id>    # runs the agent's own resume command

See the Sessions guide, and Sessions design for how it is built.

Privacy

Events carry metadata only — never prompt text, model responses, or file contents. See omnidevx-core for the canonical contract.

The session commands are the one place that reads titles and prompts, so you can recognize a session. That text is read locally on demand, shown in your terminal, and never written to the event store. See the Sessions guide.

Installation

go get github.com/plexusone/omnidevx

Requirements

  • Go 1.26 or later