Command-line interface for Osiris v0.2.0 pipeline system.
osiris [--help] [--version] <command> [options]--help: Show help message--version: Display Osiris version (v0.2.0)
Initialize Osiris configuration files:
osiris init [OPTIONS]Options:
--no-comments: Generate configuration without comment lines--stdout: Output configuration to stdout instead of creating file--json: Output initialization results in JSON format
Creates/Updates:
osiris.yaml- Main configuration file including:- Logging and session settings
- LLM configuration
- AIOP configuration with defaults for export settings
- Pipeline and discovery settings
- Creates backup as
osiris.yaml.backupif file exists
AIOP Configuration: The init command generates a complete AIOP configuration section with defaults:
aiop:
enabled: true # Auto-generate AIOP after each run
policy: core # core|annex|custom
max_core_bytes: 300000 # Size limit for Core package
timeline_density: medium # Event filtering level
metrics_topk: 100 # Top metrics to keep
# ... additional settingsExamples:
# Standard initialization
osiris init
# Generate config without comments for production
osiris init --no-comments
# Preview config without creating file
osiris init --stdout
# Get JSON output for automation
osiris init --jsonStart interactive conversation to create pipelines:
osiris chat [--pro-mode]Options:
--pro-mode: Use custom LLM prompts from.osiris_prompts/
Compile an OML pipeline into an executable manifest:
osiris compile <pipeline.oml> [--output DIR] [--verbose]Example:
osiris compile pipeline.oml
# Output: logs/run_<timestamp>/compile_<timestamp>/manifest.yamlExecute a compiled manifest or OML file:
# Run the last compiled manifest
osiris run --last-compile
# Run specific manifest
osiris run manifest.yaml
# Run with E2B cloud execution
osiris run --last-compile --e2b
# E2B with custom resources
osiris run --last-compile --e2b --e2b-cpu 4 --e2b-mem 8
# E2B with auto-install dependencies
osiris run --last-compile --e2b --e2b-install-depsOptions:
--last-compile: Use the most recently compiled manifest--e2b: Execute in E2B cloud sandbox--e2b-cpu N: Number of CPU cores (default: 2)--e2b-mem GB: Memory in GB (default: 4)--e2b-timeout SECONDS: Execution timeout (default: 900)--e2b-install-deps: Auto-install missing Python packages--e2b-env KEY=VALUE: Set environment variable in sandbox--e2b-pass-env NAME: Pass environment variable from current shell--dry-run: Show execution plan without running--verbose: Show detailed execution output
Check Osiris configuration for errors:
osiris validate [--mode MODE]Options:
--mode: Validation mode (strict,warn,off), default:warn
Environment override:
OSIRIS_VALIDATION=strict osiris validateDisplay configured connections with masked secrets:
osiris connections list [--json]Example output:
Osiris Connections
╭─────────┬───────────┬──────────────────┬─────────╮
│ Family │ Alias │ Host │ Default │
├─────────┼───────────┼──────────────────┼─────────┤
│ mysql │ default │ localhost:3306 │ ✓ │
│ mysql │ primary │ db.example.com │ │
│ supabase│ main │ *.supabase.co │ ✓ │
╰─────────┴───────────┴──────────────────┴─────────╯
Options:
--json: Output in JSON format
Validate connection configurations and test connectivity:
osiris connections doctorChecks:
- Configuration syntax validity
- Required fields present
- Environment variables resolved
- Network connectivity (if possible)
Display all pipeline execution sessions:
osiris logs list [--recent N] [--verbose]Options:
--recent N: Show only N most recent sessions--verbose: Include detailed session information
Show events and metrics for a specific session:
osiris logs show --session <session_id> [--filter TYPE]Options:
--session: Session ID (e.g.,run_1234567890)--filter: Filter by event type (e.g., "error", "step_complete")
Create interactive HTML report for session analysis:
# Generate and open report
osiris logs html --open
# Generate for specific session
osiris logs html --session <session_id> --open
# Output to custom directory
osiris logs html --output reports/Options:
--session: Specific session ID (default: most recent)--output: Output directory (default:logs/)--open: Open report in browser after generation
The HTML report includes:
- Session overview with pipeline metrics
- Execution timeline visualization
- Connection details (masked secrets)
- Performance metrics and charts
- Artifact browser
- E2B-specific metrics (bootstrap time, badges)
Clean up old session logs:
osiris logs gc [--keep-recent N] [--older-than DAYS]Options:
--keep-recent N: Keep N most recent sessions (default: 10)--older-than DAYS: Remove sessions older than DAYS
Generate a structured, multi-layered AI Operation Package (AIOP) for LLM consumption:
osiris logs aiop [--session SESSION_ID | --last] [OPTIONS]Required Arguments (one of):
--session SESSION_ID: Export specific session by ID--last: Export the most recent session
Output Options:
--output PATH: Write to file instead of stdout--format {json|md}: Output format (default: json)json: Full AIOP in JSON-LD format with all layersmd: Human-readable Markdown run-card summary
Size Control:
--max-core-bytes N: Maximum size for Core package (default: 300000)--timeline-density {minimal|medium|verbose}: Event filtering (default: medium)minimal: Key events only (start, end, errors)medium: Important events and step transitionsverbose: All events including debug
--metrics-topk N: Keep top N metrics per step (default: 10)--schema-mode {summary|detailed}: Schema detail level (default: summary)
Annex Policy (for large runs):
--policy {core|annex}: Export policy (default: core)core: Single package with truncation if neededannex: Core + NDJSON shard files for full data
--annex-dir DIR: Directory for annex files (default: .aiop-annex)--compress {none|gzip}: Compression for annex files (default: none)
Configuration Precedence:
CLI flags > $OSIRIS_AIOP_* environment > osiris.yaml > defaults
Environment Variables:
OSIRIS_AIOP_MAX_CORE_BYTES: Maximum Core size in bytesOSIRIS_AIOP_TIMELINE_DENSITY: Timeline filtering levelOSIRIS_AIOP_METRICS_TOPK: Number of top metrics to keepOSIRIS_AIOP_SCHEMA_MODE: Schema detail level
Exit Codes:
0: Success - AIOP generated successfully1: General error (e.g., I/O failure)2: Invalid arguments or session not found4: AIOP was truncated due to size limits (warning)
Examples:
# Export last run as JSON
osiris logs aiop --last
# Generate Markdown run-card to file
osiris logs aiop --last --format md --output runcard.md
# Export with annex shards and compression
osiris logs aiop --session run_123 --policy annex --compress gzip
# Control package size with aggressive truncation
osiris logs aiop --last --max-core-bytes 50000 --timeline-density minimal
# Check if truncation occurred
osiris logs aiop --last --format json | jq '.metadata.truncated'Configuration Precedence: AIOP settings follow this precedence order:
- CLI flags (highest priority) - Command line arguments
- Environment variables -
OSIRIS_AIOP_*prefixed variables - YAML configuration - Settings in
osiris.yamlunderaiop:section - Built-in defaults (lowest priority)
Example:
# YAML sets timeline_density: high
# ENV sets OSIRIS_AIOP_TIMELINE_DENSITY=low
# CLI sets --timeline-density medium
# Result: medium (CLI wins)AIOP Structure: The exported package contains four layers:
- Evidence Layer: Timeline, metrics, errors, artifacts
- Semantic Layer: DAG, components, OML specification
- Narrative Layer: Natural language description with citations
- Metadata Layer: Package metadata, size hints, truncation markers, config_effective
The metadata.config_effective field shows the actual configuration used and its source:
{
"timeline_density": {
"value": "medium",
"source": "CLI" // or "ENV", "YAML", "DEFAULT"
}
}See AIOP Examples for complete structure.
Export system prompts for customization:
osiris dump-prompts --exportCreates .osiris_prompts/ directory with:
conversation_system.txt- Main AI personalitysql_generation_system.txt- SQL generation rulesuser_prompt_template.txt- Context building template
Use with osiris chat --pro-mode to apply custom prompts.
# 1. Initialize configuration
osiris init
# 2. Set up connections and secrets
vi osiris_connections.yaml
vi .env
# 3. Create pipeline via conversation
osiris chat
# 4. Compile the generated OML
osiris compile output/pipeline.oml
# 5. Run locally
osiris run --last-compile
# 6. Generate report
osiris logs html --open# Set E2B API key
export E2B_API_KEY="your-key-here"
# Compile pipeline
osiris compile pipeline.oml
# Run in E2B with custom resources
osiris run --last-compile --e2b \
--e2b-cpu 4 \
--e2b-mem 8 \
--e2b-timeout 3600 \
--e2b-install-deps
# View results
osiris logs html --open# List all connections
osiris connections list
# Test connectivity
osiris connections doctor
# View as JSON for scripting
osiris connections list --json | jq '.connections.mysql'Key environment variables used by Osiris:
E2B_API_KEY: API key for E2B cloud executionOSIRIS_VALIDATION: Override validation mode (strict/warn/off)MYSQL_PASSWORD,MYSQL_DATABASE: MySQL credentialsSUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY: Supabase credentials
All output locations respect the filesystem contract configured in osiris.yaml. Default paths are shown below.
CLI commands (like osiris connections list, osiris connections doctor) create session logs under:
<base_path>/<run_logs_dir>/<session_id>/
Default: run_logs/<session_id>/ (relative to current directory)
Configuration (in osiris.yaml):
filesystem:
base_path: "" # Base path for all files (default: current directory)
run_logs_dir: "run_logs" # Directory for CLI session logsStructure:
run_logs/
└── connections_1234567890/
├── osiris.log # Main session log
├── events.jsonl # Structured events
└── metrics.jsonl # Performance metrics
Pipeline runs (via osiris run) use the full filesystem contract with profile support:
<base_path>/<run_logs_dir>/[<profile>/]<pipeline_slug>/<run_ts>_<run_id>-<manifest_short>/
Structure:
run_logs/
└── dev/ # Profile (if profiles.enabled)
└── orders_etl/ # Pipeline slug
└── 20250116T120000Z_001-abc1234/
├── osiris.log
├── debug.log
├── events.jsonl
├── metrics.jsonl
└── artifacts/
Compiled pipelines and manifests:
<base_path>/<build_dir>/[<profile>/]pipelines/<pipeline_slug>/<manifest_short>-<manifest_hash>/
Default: build/pipelines/<pipeline_slug>/...
- Generated pipelines:
<base_path>/<outputs.directory>/(default:output/) - AIOP exports:
<base_path>/<aiop_dir>/...(default:aiop/) - HTML reports: Generated in session directories
- Session cache:
<base_path>/.osiris/sessions/ - Discovery cache:
<base_path>/.osiris/cache/
See Filesystem Contract for full configuration options.