{"id":47601806,"url":"https://github.com/danieljhkim/orbit","last_synced_at":"2026-04-04T23:04:16.294Z","repository":{"id":345200151,"uuid":"1182598762","full_name":"danieljhkim/orbit","owner":"danieljhkim","description":"Orbit is a local-first LLM-native workflow engine for AI agents and humans. ","archived":false,"fork":false,"pushed_at":"2026-03-31T02:23:06.000Z","size":2493,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"agent-main","last_synced_at":"2026-04-01T23:32:15.081Z","etag":null,"topics":["agent-orchestration","agent-runtime","agentic-workflow","ai-agents","automation","cli","infra-tools","local-first","pipeline","rust","rust-cli"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/danieljhkim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-15T18:23:29.000Z","updated_at":"2026-03-31T02:23:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/danieljhkim/orbit","commit_stats":null,"previous_names":["danieljhkim/orbit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/danieljhkim/orbit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljhkim%2Forbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljhkim%2Forbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljhkim%2Forbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljhkim%2Forbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/danieljhkim","download_url":"https://codeload.github.com/danieljhkim/orbit/tar.gz/refs/heads/agent-main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/danieljhkim%2Forbit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31418288,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-orchestration","agent-runtime","agentic-workflow","ai-agents","automation","cli","infra-tools","local-first","pipeline","rust","rust-cli"],"created_at":"2026-04-01T18:52:09.821Z","updated_at":"2026-04-04T23:04:16.235Z","avatar_url":"https://github.com/danieljhkim.png","language":"Rust","readme":"# Orbit: Local-First Agentic Workflow Engine\n\nOrbit is a lightweight, local-first execution engine designed for agent-driven software delivery. It provides the core primitives necessary to orchestrate complex, multi-step AI workflows directly within a development environment.\n\nOrbit runs directly on agent CLIs - no API keys required.\n\n---\n\n## Quick Start\n\n**Prerequisites**: Rust + Codex CLI / Claude Code (subscriptions required)\n\nExample flow:\n\n```bash\n# install orbit binary\nmake install\n\n# Initialize `~/.orbit` directory with default global configurations.\norbit init\n\n# cd into your repo \ncd \u003crepo\u003e\n\n# Initialize orbit workspace - creates `.orbit` dir in the repo_root\norbit workspace init\n\n# Prompt an agent to create a task:\n\"Create an orbit task for ...\"\n\n# once task is created, approve the task\norbit task approve \u003ctask_id\u003e\n\n# run the parallel task pipeline\norbit job run job_parallel_task_pipeline\n```\n\n---\n\n## Overview\n\n### Orbit Artifacts\n\nOrbit operates through a structured filesystem hierarchy under `.orbit/`:\n\n```\n.orbit/\n├── activities/       # Atomic units of work (YAML)\n├── diagnostics/      # Runtime diagnostics and health checks\n├── jobs/\n│   ├── jobs/         # Job definitions — ordered chains of activities\n│   └── runs/         # Immutable execution audit logs per job run\n├── scoreboard/       # Agent performance tracking (PR merge rates, friction bounty)\n├── skills/           # Markdown-based skill instructions loaded by agents\n└── tasks/            # Task artifacts organized by lifecycle state\n```\n\n### Tasks\n\nTasks are work items for agent/human coordination and project tracking. You can think of them as jira tickets.\n- **Work unit for execution**: Represents a discrete piece of work (feature, bug fix, chore, refactor)\n- **Lifecycle states**: Proposed → Backlog → InProgress → Review → Done (with branching to Blocked, Archived, Rejected, Someday)\n- **Execution tracking**:\n    - execution_summary for recording what was actually done\n    - Branch and PR number for code changes\n    - Comments from team members\n    - History log of all transitions and updates\n\n### Activities\n\nActivities are atomic, reusable units of work:\n\n- Self-contained operations with defined schemas (input/output)\n- Each has a spec_type that determines how it's implemented (i.e. automation, agent_invoke, api, cli_command)\n- Can be run individually via CLI or as part of a job\n- Example activities: run_tests, review_batch_pr, review_tasks, implement_change\n\n### Jobs\n\nYou can chain one or more **activities** and run them as a single job.\n- Jobs are workflows/pipelines that orchestrate activities. \n- Designed for automation/repeatability\n\n```yaml\nschemaVersion: 1\njob:\n  job_id: job_parallel_task_pipeline\n  state: enabled\n  max_active_runs: 1\n  default_input:\n    base: agent-main\n    parallelism: 2\n  steps:\n    - target_type: activity\n      target_id: dispatch_and_plan_batch\n      agent_cli: claude\n      model: opus\n      condition: always\n      timeout_seconds: 2000\n    - target_type: activity\n      target_id: snapshot_batch_state\n      condition: on_success\n      timeout_seconds: 30\n    - target_type: activity\n      target_id: parallel_dispatch_tasks\n      condition: on_success\n      timeout_seconds: 7200\n    - target_type: activity\n      target_id: verify_batch\n      condition: on_success\n      timeout_seconds: 600\n    - target_type: activity\n      target_id: commit_and_open_batch_pr\n      condition: on_success\n      timeout_seconds: 300\n    - target_type: job\n      target_id: job_batch_review_cycle\n      condition: on_success\n      timeout_seconds: 7200\n```\n\n---\n\n## Architecture\n\nOrbit is structured as a layered set of Rust crates. Lower layers have no knowledge of higher layers.\n\n```\norbit-types          (leaf — shared types, OrbitError, ID generation)\n    ↑\norbit-policy         (RBAC policy evaluation)\norbit-exec           (process spawning, sandboxing, timeouts)\n    ↑\norbit-tools          (builtin tool registry: fs, git, github, orbit, proc, time, net)\n    ↑\norbit-store          (file-based YAML + SQLite persistence, layered store)\norbit-agent          (agent provider abstraction: Claude, Codex, mock)\n    ↑\norbit-engine         (activity/job execution, template rendering, retry logic)\n    ↑\norbit-core           (runtime bootstrap, config layering, command dispatch, asset seeding)\n    ↑\norbit-cli            (CLI entry point, clap-based commands, JSON/table output)\n```\n\n### Model Strategy\n\nOrbit uses a multi-model strategy to balance reasoning depth against throughput:\n\n| Model | Role | Rationale |\n| :--- | :--- | :--- |\n| **Claude (Opus)** | Planning, dispatch, review | High-order reasoning; architectural and code review quality |\n| **Claude (Sonnet)** | Task dispatch, lightweight review | Fast reasoning for routing and triage |\n| **Codex** | Implementation, code generation | High throughput and rate limits for iterative coding tasks |\n\n---\n\n## Store \u0026 Scoping Model\n\nOrbit maintains two `.orbit/` directories: a **global** root (`~/.orbit/`) and a **workspace** root (`.orbit/` inside a repo). Each resource type has a fixed merge strategy:\n\n| Resource | Strategy | Behavior |\n| :--- | :--- | :--- |\n| Tasks, Runs, Scoreboard | **WorkspaceOnly** | Read/write only in the workspace `.orbit/` |\n| Audits, Configs, Workspace registry | **GlobalOnly** | Read/write only in `~/.orbit/` |\n| Activities, Jobs | **MergeByKey** | Global defaults + workspace overrides; workspace entries shadow global by key |\n| Skills | **WorkspaceReplaces** | Workspace has full control over available skills |\n\nWhen workspace and global roots are the same directory (e.g. `orbit init` in `$HOME`), layering is a no-op — a single store is used.\n\nThese strategies are hardcoded per resource type; there is no runtime configuration.\n\n---\n\n## Current Status\n\nOrbit is in active development (WIP). Core execution primitives are stable for local use; production deployments are not yet recommended.\n\n### Persistence Note\n\nAll Orbit state lives in `.orbit/` and is local by default. For persistence across machines without polluting git history, consider a Git overlay tool such as **monodev**. Orbit state overlays are tracked here:\n\n- https://github.com/danieljhkim/orbit/tree/monodev/persist/persist/stores/orbit-states/overlay/.orbit\n\n---\n\n## Contributing\n\nContributions focused on core execution primitives, state serialization, or tool-calling interfaces are welcome. Open an issue or submit a pull request for review.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljhkim%2Forbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanieljhkim%2Forbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanieljhkim%2Forbit/lists"}