LmCast :: Stay tuned in

Show HN: Optio – Orchestrate AI coding agents in K8s to go from ticket to PR

Recorded: March 26, 2026, 4:02 a.m.

Original Summarized

GitHub - jonwiggins/optio: Workflow orchestration for AI coding agents, from task to merged PR. · GitHub

Skip to content

Navigation Menu

Toggle navigation

Sign in

Appearance settings

PlatformAI CODE CREATIONGitHub CopilotWrite better code with AIGitHub SparkBuild and deploy intelligent appsGitHub ModelsManage and compare promptsMCP RegistryNewIntegrate external toolsDEVELOPER WORKFLOWSActionsAutomate any workflowCodespacesInstant dev environmentsIssuesPlan and track workCode ReviewManage code changesAPPLICATION SECURITYGitHub Advanced SecurityFind and fix vulnerabilitiesCode securitySecure your code as you buildSecret protectionStop leaks before they startEXPLOREWhy GitHubDocumentationBlogChangelogMarketplaceView all featuresSolutionsBY COMPANY SIZEEnterprisesSmall and medium teamsStartupsNonprofitsBY USE CASEApp ModernizationDevSecOpsDevOpsCI/CDView all use casesBY INDUSTRYHealthcareFinancial servicesManufacturingGovernmentView all industriesView all solutionsResourcesEXPLORE BY TOPICAISoftware DevelopmentDevOpsSecurityView all topicsEXPLORE BY TYPECustomer storiesEvents & webinarsEbooks & reportsBusiness insightsGitHub SkillsSUPPORT & SERVICESDocumentationCustomer supportCommunity forumTrust centerPartnersView all resourcesOpen SourceCOMMUNITYGitHub SponsorsFund open source developersPROGRAMSSecurity LabMaintainer CommunityAcceleratorGitHub StarsArchive ProgramREPOSITORIESTopicsTrendingCollectionsEnterpriseENTERPRISE SOLUTIONSEnterprise platformAI-powered developer platformAVAILABLE ADD-ONSGitHub Advanced SecurityEnterprise-grade security featuresCopilot for BusinessEnterprise-grade AI featuresPremium SupportEnterprise-grade 24/7 supportPricing

Search or jump to...

Search code, repositories, users, issues, pull requests...

Search

Clear

Search syntax tips

Provide feedback


We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.
You signed out in another tab or window. Reload to refresh your session.
You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

jonwiggins

/

optio

Public

Notifications
You must be signed in to change notification settings

Fork
1

Star
64

Code

Issues
2

Pull requests
7

Actions

Projects

Security
0

Insights

Additional navigation options

Code

Issues

Pull requests

Actions

Projects

Security

Insights


jonwiggins/optio

 mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History148 Commits148 Commits.github.github  .husky.husky  appsapps  docs/screenshotsdocs/screenshots  helm/optiohelm/optio  imagesimages  k8sk8s  packagespackages  scriptsscripts  .dockerignore.dockerignore  .editorconfig.editorconfig  .env.example.env.example  .gitignore.gitignore  .optio-run-token.optio-run-token  .prettierignore.prettierignore  .prettierrc.prettierrc  CHANGELOG.mdCHANGELOG.md  CLAUDE.mdCLAUDE.md  CONTRIBUTING.mdCONTRIBUTING.md  Dockerfile.agentDockerfile.agent  Dockerfile.apiDockerfile.api  Dockerfile.webDockerfile.web  LICENSELICENSE  README.mdREADME.md  SECURITY.mdSECURITY.md  commitlint.config.jscommitlint.config.js  docker-compose.ymldocker-compose.yml  eslint.config.jseslint.config.js  package.jsonpackage.json  pnpm-lock.yamlpnpm-lock.yaml  pnpm-workspace.yamlpnpm-workspace.yaml  tsconfig.base.jsontsconfig.base.json  turbo.jsonturbo.json  View all filesRepository files navigationREADMEContributingMIT licenseSecurityOptio
Workflow orchestration for AI coding agents, from task to merged PR.

Optio turns coding tasks into merged pull requests — without human babysitting. Submit a task (manually, from a GitHub Issue, or from Linear), and Optio handles the rest: provisions an isolated environment, runs an AI agent, opens a PR, monitors CI, triggers code review, auto-fixes failures, and merges when everything passes.
The feedback loop is what makes it different. When CI fails, the agent is automatically resumed with the failure context. When a reviewer requests changes, the agent picks up the review comments and pushes a fix. When everything passes, the PR is squash-merged and the issue is closed. You describe the work; Optio drives it to completion.

Dashboard — real-time overview of running agents, pod status, costs, and recent activity

Task detail — live-streamed agent output with pipeline progress, PR tracking, and cost breakdown
How It Works
You create a task Optio runs the agent Optio closes the loop
───────────────── ────────────────────── ──────────────────────

GitHub Issue Provision repo pod CI fails?
Manual task ──→ Create git worktree ──→ → Resume agent with failure context
Linear ticket Run Claude Code / Codex Review requests changes?
Open a PR → Resume agent with feedback
CI passes + approved?
→ Squash-merge + close issue

Intake — tasks come from the web UI, GitHub Issues (one-click assign), or Linear tickets
Provisioning — Optio finds or creates a Kubernetes pod for the repo, creates a git worktree for isolation
Execution — the AI agent (Claude Code or OpenAI Codex) runs with your configured prompt, model, and settings
PR lifecycle — Optio polls the PR every 30s for CI status, review state, and merge readiness
Feedback loop — CI failures, merge conflicts, and review feedback automatically resume the agent with context
Completion — PR is squash-merged, linked issues are closed, costs are recorded

Key Features

Autonomous feedback loop — auto-resumes the agent on CI failures, merge conflicts, and review feedback; auto-merges when everything passes
Pod-per-repo architecture — one long-lived Kubernetes pod per repo with git worktree isolation, multi-pod scaling, and idle cleanup
Code review agent — automatically launches a review agent as a subtask, with a separate prompt and model
Per-repo configuration — model, prompt template, container image, concurrency limits, and setup commands, all tunable per repository
GitHub Issues and Linear intake — assign issues to Optio from the UI or via ticket sync
Real-time dashboard — live log streaming, pipeline progress, cost analytics, and cluster health

Architecture
┌──────────────┐ ┌────────────────────┐ ┌───────────────────────────┐
│ Web UI │────→│ API Server │────→│ Kubernetes │
│ Next.js │ │ Fastify │ │ │
│ :3100 │ │ │ │ ┌── Repo Pod A ───────┐ │
│ │←ws──│ Workers: │ │ │ clone + sleep │ │
│ Dashboard │ │ ├─ Task Queue │ │ │ ├─ worktree 1 ⚡ │ │
│ Tasks │ │ ├─ PR Watcher │ │ │ ├─ worktree 2 ⚡ │ │
│ Repos │ │ ├─ Health Mon │ │ │ └─ worktree N ⚡ │ │
│ Cluster │ │ └─ Ticket Sync │ │ └─────────────────────┘ │
│ Costs │ │ │ │ ┌── Repo Pod B ───────┐ │
│ Issues │ │ Services: │ │ │ clone + sleep │ │
│ │ │ ├─ Repo Pool │ │ │ └─ worktree 1 ⚡ │ │
│ │ │ ├─ Review Agent │ │ └─────────────────────┘ │
│ │ │ └─ Auth/Secrets │ │ │
└──────────────┘ └─────────┬──────────┘ └───────────────────────────┘
│ ⚡ = Claude Code / Codex
┌──────┴──────┐
│ Postgres │ Tasks, logs, events, secrets, repos
│ Redis │ Job queue, pub/sub, live streaming
└─────────────┘

Task lifecycle
┌──────────────────────────────────────────────────┐
│ INTAKE │
│ │
│ GitHub Issue ───→ ┌──────────┐ │
│ Manual Task ───→ │ QUEUED │ │
│ Ticket Sync ───→ └────┬─────┘ │
└───────────────────────────┼──────────────────────┘

┌───────────────────────────┼──────────────────────┐
│ EXECUTION ▼ │
│ │
│ ┌──────────────┐ ┌─────────────────┐ │
│ │ PROVISIONING │───→│ RUNNING │ │
│ │ get/create │ │ agent writes │ │
│ │ repo pod │ │ code in │ │
│ └──────────────┘ │ worktree │ │
│ └───────┬─────────┘ │
└───────────────────────────────┼──────────────────┘

┌─────────────┐ │ ┌──────────────────┐
│ FAILED │←──┴──→│ PR OPENED │
│ │ │ │
│ (auto-retry │ │ PR watcher │
│ if stale) │ │ polls every 30s │
└─────────────┘ └─────────┬────────┘

┌─────────────────────────────────────────────┼─────────┐
│ FEEDBACK LOOP │ │
│ │ │
│ CI fails? ────────→ Resume agent ←─────┤ │
│ to fix build │ │
│ │ │
│ Merge conflicts? ──→ Resume agent ←─────┤ │
│ to rebase │ │
│ │ │
│ Review requests ───→ Resume agent ←─────┤ │
│ changes? with feedback │ │
│ │ │
│ CI passes + ───────→ Auto-merge ──────┤ │
│ review done? & close issue │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ COMPLETED │ │
│ │ PR merged │ │
│ │ Issue closed │ │
│ └──────────────┘ │
└───────────────────────────────────────────────────────┘

Quick Start
Prerequisites

Docker Desktop with Kubernetes enabled (Settings → Kubernetes → Enable)
Node.js 22+ and pnpm 10+

Setup
# Clone and install
git clone https://github.com/jonwiggins/optio.git && cd optio
pnpm install

# Bootstrap infrastructure (Postgres + Redis in K8s, migrations, .env)
./scripts/setup-local.sh

# Build the agent image
docker build -t optio-agent:latest -f Dockerfile.agent .

# Start dev servers
pnpm dev
# API → http://localhost:4000
# Web → http://localhost:3100
The setup wizard walks you through configuring GitHub access, agent credentials (API key or Max Subscription), and adding your first repository.
Project Structure
apps/
api/ Fastify API server, BullMQ workers, WebSocket endpoints,
review service, subtask system, OAuth providers
web/ Next.js dashboard with real-time streaming, cost analytics

packages/
shared/ Types, task state machine, prompt templates, error classifier
container-runtime/ Kubernetes pod lifecycle, exec, log streaming
agent-adapters/ Claude Code + Codex prompt/auth adapters
ticket-providers/ GitHub Issues, Linear

images/ Container Dockerfiles: base, node, python, go, rust, full
helm/optio/ Helm chart for production Kubernetes deployment
scripts/ Setup, init, and entrypoint scripts

Production Deployment
Optio ships with a Helm chart for production Kubernetes clusters:
helm install optio helm/optio \
--set encryption.key=$(openssl rand -hex 32) \
--set postgresql.enabled=false \
--set externalDatabase.url="postgres://..." \
--set redis.enabled=false \
--set externalRedis.url="redis://..." \
--set ingress.enabled=true \
--set ingress.hosts[0].host=optio.example.com
See the Helm chart values for full configuration options including OAuth providers, resource limits, and agent image settings.
Tech Stack

Layer
Technology

Monorepo
Turborepo + pnpm

API
Fastify 5, Drizzle ORM, BullMQ

Web
Next.js 15, Tailwind CSS 4, Zustand

Database
PostgreSQL 16

Queue
Redis 7 + BullMQ

Runtime
Kubernetes (Docker Desktop for local dev)

Deploy
Helm chart

Auth
Multi-provider OAuth (GitHub, Google, GitLab)

CI
GitHub Actions (format, typecheck, test, build-web, build-image)

Agents
Claude Code, OpenAI Codex

Contributing
See CONTRIBUTING.md for development setup, workflow, and conventions.
License
MIT

About

Workflow orchestration for AI coding agents, from task to merged PR.

Resources

Readme

License

MIT license

Contributing

Contributing

Security policy

Security policy

Uh oh!

There was an error while loading. Please reload this page.


Activity
Stars

64
stars
Watchers

1
watching
Forks

1
fork

Report repository

Releases
No releases published

Packages
0

 

 

 

Uh oh!

There was an error while loading. Please reload this page.


Contributors
2

jonwiggins
Jon Wiggins

claude
Claude

Languages

TypeScript
98.3%

Other
1.7%

Footer

© 2026 GitHub, Inc.

Footer navigation

Terms

Privacy

Security

Status

Community

Docs

Contact

Manage cookies

Do not share my personal information

You can’t perform that action at this time.

Optio fundamentally reimagines the software development workflow by leveraging AI coding agents to automate tasks from initial conception to final code integration. Jon Wiggins’ Optio system provides a comprehensive workflow orchestration platform designed to streamline software development and diminish the need for constant human oversight. The core concept centers around a closed-loop feedback system wherein an AI agent, predominantly utilizing Claude Code or OpenAI Codex, is directed to execute coding tasks initiated through various channels – including GitHub Issues, manual tasks, or Linear tickets. This automated process encompasses several stages: provisioning an isolated Kubernetes environment, running the agent, opening a Pull Request (PR), continuously monitoring the PR's CI status, managing code review requests, auto-correcting failures, and ultimately, automatically merging the PR upon successful completion.

The system’s operation is structured around a series of interconnected components. Initially, a task is generated from a source such as a GitHub Issue or a manual input. Optio then provisions a Kubernetes pod tailored to the specific repository, creating a Git worktree for isolated code execution. The AI agent, configured with a user-defined prompt, model, and container image, begins executing the assigned coding task, writing code directly into the isolated worktree. Crucially, Optio establishes a continuous monitoring loop through the PR lifecycle, constantly polling the PR for CI status. If the CI build fails, the system automatically resumes the agent with the failure context, allowing it to diagnose and rectify the issue. Furthermore, the system facilitates code review by launching a dedicated review agent as a subtask, utilizing a separate prompt and model tailored for review assessment. The agent can then take actions based on feedback from human reviewers, rebase code, and resubmit PRs, driven by iterative feedback processing. Upon successful CI passes and review confirmation, Optio will automatically squash-merge the PR and close the originating issue, significantly reducing manual intervention.

Optio’s architecture incorporates several key elements designed for efficiency and resilience. The system utilizes a pod-per-repo architecture, each pod containing an isolated Git worktree, fostering multi-pod scaling and efficient resource utilization. It includes a robust feedback loop that automatically resumes the agent on CI failures, merge conflicts, or review feedback, ensuring continued progress. The Optio team has implemented a real-time dashboard that provides live streaming of agent output, pipeline progress, cost analytics, and cluster health. The API is built using Fastify with BullMQ for asynchronous task queues, facilitating efficient queuing and processing of tasks. The web interface is built with Next.js, providing a user-friendly interface to manage the workflow. A Postgres database stores logs and security information, while a Redis cache manages the job queue and pub/sub functionality, enabling real-time streaming and live data updates. The entire stack incorporates TypeScript, leveraging its type safety and maintainability.

Key features of the Optio system include an autonomous feedback loop, a pod-per-repo architecture for isolation, a code review agent, per-repo configuration options for model and prompt customization, and integration with GitHub Issues and Linear tickets. These features contribute to a significantly reduced need for human intervention, accelerating development cycles and enhancing productivity. The tech stack, built around components like Turborepo, Fastify, Next.js, and PostgreSQL, ensures scalability, reliability, and maintainability. The Helm chart enables simplified deployment and management of the Optio system on Kubernetes. The project demonstrates a clear intention to bring efficiency to the entire software development lifecycle.