1 unstable release
| new 0.1.0 | Jan 19, 2026 |
|---|
#36 in #workflow-orchestration
3.5MB
76K
SLoC
oxify-cli
Command-line interface for OxiFY workflow development and execution.
Overview
Status: ✅ Functional - Most features implemented
CLI tool for:
- Local workflow development and testing
- Workflow validation and analysis
- Scaffolding new workflows with templates
- Cost estimation and performance analysis
- Deployment automation
- Testing framework
- Node type inspection and documentation
Implemented Commands
Workflow Management
# Validate workflow structure
oxify workflow validate <file.json> [--strict]
# Create workflow (parse and validate)
oxify workflow create <file.json>
# Import workflow from file or URL
oxify workflow import <source> [--output file.json] [--validate]
# Export workflow to different format
oxify workflow export <file.json> --output <out.yaml> [--format yaml|json]
# Package workflow with dependencies
oxify workflow package <file.json> --output <package.tar.gz> [--include-deps]
# Create new workflow version
oxify workflow version <file.json> --output <new.json> --bump major|minor|patch --message "Change description"
# Show workflow information
oxify workflow info <file.json>
# Compare two workflows
oxify workflow diff <file1.json> <file2.json> [--verbose]
Local Execution
# Run workflow locally
oxify run <workflow.json> [--vars key=value] [--output results.json]
Template & Scaffolding
# Create from template
oxify init <template> [--output file.json]
# Available templates: simple, rag, chain, parallel, conditional, loop, error-handling, agent
# Interactive workflow scaffolding
oxify scaffold [--output file.json]
Analysis & Cost Estimation
# Analyze workflow for optimization opportunities
oxify analyze <workflow.json> --analysis-type structure|batching|optimize
# Estimate execution costs
oxify cost <workflow.json> [--breakdown]
# Compare costs of multiple workflows
oxify cost --compare workflow1.json workflow2.json workflow3.json
Testing
# Run workflow tests
oxify test <workflow.json> <test-file.yaml> [--verbose] [--timeout 60]
# Run single test
oxify test <workflow.json> --name "test-name" --input key=value --expect "expected-output"
Visualization
# Visualize workflow structure
oxify visualize <workflow.json> [--format ascii|dot] [--output diagram.dot]
Node Type Reference
# List all available node types
oxify nodes list
# Show schema for a node type
oxify nodes schema LLM
oxify nodes schema Retriever
# Show example configuration
oxify nodes example LLM [--format json|yaml]
oxify nodes example Code --format yaml
Workflow Statistics & Analytics
# Show workflow statistics
oxify stats workflow <workflow.json> [--detailed]
# Compare multiple workflows
oxify stats compare <workflow1.json> <workflow2.json> <workflow3.json>
Shell Completion
# Generate shell completion scripts
oxify completion bash > /etc/bash_completion.d/oxify
oxify completion zsh > ~/.zsh/completion/_oxify
oxify completion fish > ~/.config/fish/completions/oxify.fish
oxify completion powershell > oxify.ps1
Configuration
# Initialize config file
oxify config init
# Show current configuration
oxify config show
# Set configuration value
oxify config set <key> <value>
# Unset configuration value
oxify config unset <key>
Deployment (Requires API Server)
# Deploy workflow
oxify deploy <workflow.json> [--env production]
# Manage schedules
oxify schedule create <workflow-id> --cron "0 0 * * *"
oxify schedule list
oxify schedule pause <schedule-id>
# Manage secrets
oxify secret set <key> <value>
oxify secret list
# Manage checkpoints
oxify checkpoint save <execution-id>
oxify checkpoint restore <checkpoint-id>
# Manage webhooks
oxify webhook create <workflow-id> --url https://api.example.com
oxify webhook list
# Version management
oxify version list <workflow-id>
oxify version compare <v1> <v2>
Future Enhancements
Planned Features
# Watch and reload on changes
oxify run <workflow.json> --watch
# Debug workflow execution with breakpoints
oxify run <workflow.json> --debug --breakpoint llm_node
# Lint for best practices
oxify lint <workflow.json>
# Execute remote workflow (requires API server)
oxify execute --id workflow_123 --input '{"query": "test"}'
# Workflow execution logs and monitoring
oxify execution logs <execution-id> [--follow]
oxify execution list [--workflow <id>] [--status running|completed|failed]
oxify execution get <id>
# Dry run mode
oxify dry-run <workflow.json>
# Performance profiling
oxify profile <workflow.json>
# Generate workflow from description (AI-powered)
oxify generate --description "A RAG pipeline for customer support"
Configuration
Config file: ~/.oxify/config.toml
[server]
url = "https://api.oxify.io"
api_key = "your_api_key"
[llm]
default_provider = "openai"
openai_api_key = "sk-..."
anthropic_api_key = "sk-ant-..."
[vector]
default_provider = "qdrant"
qdrant_url = "http://localhost:6333"
Workflow Format
Workflows are defined in JSON:
{
"metadata": {
"name": "Simple Chat",
"version": "1.0.0",
"description": "Basic chatbot workflow"
},
"nodes": [
{
"id": "start",
"name": "Start",
"type": "Start"
},
{
"id": "llm",
"name": "ChatGPT",
"type": "LLM",
"config": {
"provider": "openai",
"model": "gpt-4",
"prompt_template": "{{user_input}}"
}
}
],
"edges": [
{
"from": "start",
"to": "llm"
}
]
}
Built-in Templates
Available workflow templates (use with oxify init <template>):
simple- Basic LLM workflowrag- Retrieval-Augmented Generation with vector searchchain- Multi-step LLM processing chainparallel- Parallel execution exampleconditional- Conditional routing with Switch nodeloop- Loop/iteration with ForEacherror-handling- Try-Catch-Finally patternagent- AI agent with reasoning and tool use
Testing Framework
Test file format (test.yaml):
tests:
- name: "Test basic query"
workflow: "./workflow.json"
inputs:
query: "What is Rust?"
assertions:
- path: "result.answer"
contains: "programming language"
- path: "result.confidence"
gt: 0.8
timeout: 30
- name: "Test error handling"
workflow: "./workflow.json"
inputs:
invalid_input: true
expect_error: true
Run tests:
# Run test suite
oxify test <workflow.json> <test.yaml> --verbose
# Run single test
oxify test <workflow.json> --name "Test basic query" \
--input query="What is Rust?" \
--expect "programming language"
Feature Status
Implemented ✅
- Workflow validation with comprehensive error reporting
- Local execution engine integration
- Template-based workflow creation (8 templates)
- Interactive scaffolding with prompts
- Workflow visualization (ASCII art and DOT format)
- Cost estimation and comparison
- Workflow analysis and optimization suggestions
- Workflow statistics and analytics
- Testing framework with assertions
- Import/export with format conversion
- Workflow versioning and diffing
- Workflow packaging (tar.gz/zip)
- Node type documentation and examples
- Configuration management
- Shell completion generation (bash, zsh, fish, powershell)
In Progress 🚧
- API server integration for remote execution
- Execution monitoring and logs
- Watch mode for live reloading
Planned 📋
- Interactive workflow builder (TUI with ratatui)
- Performance profiling and tracing
- AI-powered workflow generation
- Plugin system for custom nodes
- Workflow migration tools (n8n, Zapier, Airflow)
See Also
oxify-model: Workflow data structuresoxify-engine: Local execution engineoxify-api: Remote API server
Dependencies
~112MB
~2M SLoC