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.
omnidxiis Digital Experience Intelligence — product-analytics platforms (Amplitude, Mixpanel, Heap, Pendo). OmniDevX observes how developers and AI agents build software.
| Source | Package | Location |
|---|---|---|
| Claude Code | providers/claudecode |
omnidevx-core (thin, stdlib) |
| Codex CLI | omni-openai/omnidevx |
omni-openai (thick, SQLite) |
| Kiro CLI | omni-aws/omnidevx |
omni-aws (thick, SQLite) |
| Git | providers/git |
omnidevx-core (thin, stdlib via gogit) |
| GitHub | omni-github/omnidevx |
omni-github (thick, REST + GraphQL) |
NewDefault composes the local Claude Code, Codex, and Kiro collectors; the
Git and GitHub collectors need explicit configuration (repo roots, tokens)
so callers add them themselves — see Usage below.
The omnidevx CLI collects events from local AI agent session history and
writes them to the canonical OmniDevX store.
# Build
go build -o omnidevx ./cmd/omnidevx
# Collect events for a date range
./omnidevx collect --person person:jane --since 2026-07-01 --until 2026-07-31
# Dry run to preview what would be collected
./omnidevx collect --person person:jane --since 2026-07-28 --until 2026-07-29 --dry-runEvents are written to ~/.plexusone/omnidevx/data/events/ and deduplicated
by ID, so re-running the same period is safe.
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)Or compose explicitly, adding the Git and GitHub collectors:
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)Events carry metadata only — never prompt text, model responses, or file contents. See omnidevx-core for the canonical contract.
Full documentation at plexusone.github.io/omnidevx
- omnidevx-core - Canonical event model and contracts
- omni-github - GitHub DevX collector
- omni-openai - Codex CLI collector
- omni-aws - Kiro CLI collector
- omnidxi - Digital Experience Intelligence (not OmniDevX)
MIT