Bridge between Codex CLI hooks and Infinium agent tracing
Project description
Infinium Codex Connector
Bridge between Codex CLI hooks and Infinium agent tracing. Automatically captures Codex CLI sessions — tool calls, prompts, token usage — and sends structured traces to the Infinium platform for Maestro analysis.
Quick Start
Navigate to your project, install, and set up:
cd /path/to/your/project
pip install infinium-codex-connector
infinium-codex init
infinium-codex test # verify credentials + network
That's it. Now just use Codex CLI as you normally would — every session is automatically traced to Infinium.
If
infinium-codexis not on your PATH, usepython -m infinium_codex_connectoras a drop-in replacement.
Requirements
- Python 3.9+
- Codex CLI with hooks enabled (
codex features enable codex_hooks) - An Infinium agent ID and secret
Windows: requires Codex CLI v0.119.0 or newer — earlier versions had hooks gated off on Windows (openai/codex#17268, merged 2026-04-09).
How It Works
After infinium-codex init, everything is automatic. You use Codex CLI exactly as before — the connector works silently in the background via hooks.
Codex CLI ──command hook──> python -m infinium_codex_connector.hook
│
├─ append event to session JSONL file
│
└─ on Stop:
spawn detached background worker
→ replay events → aggregate → send trace
│
▼
Infinium API
POST /agents/{id}/trace
- Codex CLI fires a command hook for each event (tool call, prompt, etc.)
- The hook script appends the event to a session JSONL file on disk — returns instantly so Codex is never blocked.
- On turn completion (
Stop), a detached background worker replays all events, aggregates them into a structured trace, and sends it to Infinium via the Python SDK. - Maestro interprets the trace (grading accuracy, efficiency, prompt adherence).
CLI Reference
infinium-codex init
Interactive setup wizard. Configures credentials and Codex hooks.
Options:
--agent-id TEXT Agent ID (skip prompt)
--agent-secret TEXT Agent Secret (skip prompt)
--base-url TEXT API base URL
--no-interactive Use flags only, no prompts (for CI/scripting)
infinium-codex test
Send a minimal test trace to verify credentials + network.
Options:
-v, --verbose Show the full trace payload before sending
infinium-codex status
Show current configuration: tracing state, credentials, config source, hook locations, pending retries.
infinium-codex pause / infinium-codex resume
Temporarily stop or restart tracing. Hooks stay installed — events are silently skipped while paused.
infinium-codex history
View recently sent traces.
Options:
-n, --limit N Number of entries (default: 10)
--json Output raw JSON lines
--clear Delete all history
infinium-codex errors
View the connector error log (network failures, bad payloads, keyring issues).
infinium-codex retry
Resend traces that failed due to network issues.
Options:
--dry-run Show what would be retried without sending
infinium-codex update-credentials
Update your Agent ID or Secret.
infinium-codex uninstall
Remove the connector completely — hooks, config file, and keyring secret.
Options:
-y, --yes Skip confirmation prompt
infinium-codex cleanup
Remove stale session files (housekeeping).
infinium-codex start
Start HTTP server mode (alternative to command hooks, requires pip install infinium-codex-connector[server]).
Per-Project Configuration
Each project traces to its own Infinium agent:
cd /path/to/project-a
infinium-codex init # Agent A credentials
cd /path/to/project-b
infinium-codex init # Agent B credentials
Config resolution order:
- Project config (
.infinium/config.jsonat or above the working directory) - Environment variables (
INFINIUM_AGENT_ID,INFINIUM_AGENT_SECRET— override for CI/Docker)
Add .infinium/ to your .gitignore.
Credential Storage
- Agent ID and API URL are stored in the project config file (
.infinium/config.json) - Agent Secret is stored in your OS keyring:
- Windows: Credential Manager
- macOS: Keychain
- Linux: Secret Service (GNOME Keyring / KWallet)
- Environment variables (
INFINIUM_AGENT_ID,INFINIUM_AGENT_SECRET) override stored values — useful for CI/Docker
What Gets Traced
| Field | Source |
|---|---|
| name | First user prompt, truncated (e.g. "Fix the login validation") |
| description | First user prompt (full) |
| duration | Total session duration in seconds |
| steps | Ordered list: user prompts, tool calls |
| errors | Tool failures (Codex tool_response: false) |
| environment | Model, session source, working directory, permission mode |
| llm_usage | Prompt / completion / cached input tokens (from Codex transcript) |
Captured Events
| Event | What It Captures |
|---|---|
SessionStart |
Model, source (startup/resume), working directory |
UserPromptSubmit |
User prompt text (truncated) |
PreToolUse / PostToolUse |
Tool name (Bash), command, success/failure |
Stop |
Assistant's final response — triggers trace flush |
Configuration
Environment variables (all optional — init handles the common case):
# Credentials (override config file + keyring)
INFINIUM_AGENT_ID=...
INFINIUM_AGENT_SECRET=...
INFINIUM_BASE_URL=...
# Connector behavior
CONNECTOR_QUIET=false # Suppress output
CONNECTOR_FLUSH_ON_STOP=true # Send trace after each turn
CONNECTOR_FLUSH_ON_SESSION_END=true
CONNECTOR_SESSION_TTL=600 # Stale session cleanup threshold (seconds)
CONNECTOR_SESSION_DIR=... # Override temp directory for session files
Documentation
Full documentation: i42m.ai/docs/codex
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file infinium_codex_connector-1.0.0.tar.gz.
File metadata
- Download URL: infinium_codex_connector-1.0.0.tar.gz
- Upload date:
- Size: 50.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ce98b0308fb20c9e193d166787d76333da9abcc989c654662de0b6c751b6aa1
|
|
| MD5 |
66a65d10b802ce22df905118f9a6cecf
|
|
| BLAKE2b-256 |
c9be33f5b9fc429d8f1af4492cb224ee2866083fedd4ea2491ac1438689ccc47
|
File details
Details for the file infinium_codex_connector-1.0.0-py3-none-any.whl.
File metadata
- Download URL: infinium_codex_connector-1.0.0-py3-none-any.whl
- Upload date:
- Size: 48.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cecebaa60ed4c61887bf13792013959d1091101e5b62a92f6cb409b76bb4874
|
|
| MD5 |
def5676e4a9bf27cc3f2d95fa5640e6d
|
|
| BLAKE2b-256 |
fcf53ba61aaabea45054bc2f4a44854dbdf96311bd5934876b184fd9aa3833f8
|