Skip to content
/

OpenASE

openase · pacificstudio/openase · ★ 243 · last commit 2026-05-25

Turns tickets into working code via AI agents that autonomously claim tickets, execute versioned workflow harnesses, and pass lifecycle hook quality gates.

Best whenAgent behavior should be a managed, versioned asset in a platform database — not a CLAUDE.md file that can drift.
Skip ifAd-hoc agent prompts without version control, Public-facing deployment without OIDC
vs seeds
taskmaster-aiis the closest seed (ticket-driven task management), but OpenASE operates at server infrastructure level vs. taskmaster-…
Primitive shape 8 total
Skills 8
00

Summary

OpenASE — Summary

OpenASE (Open Auto Software Engineering) is a single Go binary that ships an API server, workflow orchestrator, and embedded SvelteKit web UI together — a complete ticket-driven platform where AI agents automatically pick up tickets, execute workflows on registered machines, and deliver results with full traceability. The central abstraction is a Harness: a hard-boundary document in the Workflow that constrains agent behavior and defines what "done" means. Lifecycle Hooks at each ticket state transition enforce quality gates (lint, tests, security scans). The platform supports multiple CLI agents via an adapter layer (Claude Code, OpenAI Codex, Gemini CLI), bound to Workflows through Providers and Agents configurations. Skills are reusable instruction documents injected into the agent's skill directories (.codex/skills/, .claude/skills/, .gemini/skills/) at runtime. The web UI covers tickets (kanban), agent monitoring, machine registration, workflow/harness editing, skill authoring, scheduled jobs, and a metrics dashboard — all accessed at localhost:2080 from a Docker Compose or single binary install.

OpenASE is the most architecturally complete ticket-to-code platform in this batch and in the corpus. It is closest to taskmaster-ai among the seeds (ticket-driven task management for agents), but operates at the infrastructure level: where taskmaster-ai is an npm tool that manages a tasks.json, OpenASE is an application server with a database, multi-machine orchestration, lifecycle hooks, and version-controlled workflow harnesses.

01

Overview

OpenASE — Overview

Origin

Created by Pacific Studio (GitHub: pacificstudio/openase). Written in Go 1.26+. 243 stars. Active (last push 2026-05-25). Apache 2.0 license. Available in English and Chinese (README.zh.md). Accompanied by a detailed PRD in SPEC.md (the founding design document).

Philosophy

From SPEC.md:

"OpenASE is not about 'making agents write better code,' but about 'enabling a team of agents to reliably deliver software.'"

Five core design principles:

  1. Tickets are everything — tickets are the atomic unit of work and the only collaboration interface between agents and humans
  2. Workflows define how work is done — each ticket type binds to a Workflow with a Harness (behavioral boundaries document)
  3. Behavior is a managed asset — Workflow Harnesses and Skills are stored in the OpenASE control plane, version-controlled and auditable
  4. Trust, but verify — lifecycle Hooks enforce quality checks at each state transition; Hook failures block status progression
  5. Progressive automation — start with manual assignment, gradually introduce AI-based auto-assignment and auto-approval

Two AI Interaction Modes

Asynchronous AI (Ticket Agents): Requirements are clear, Harness is in place → agent executes the full ticket lifecycle autonomously.

  • Fullstack Coder: one agent does everything (Todo → In Progress → In Review → Merging → Done)
  • Mixed Relay: multiple specialized agents collaborate (Design → Backend → Frontend → Testing → In Review → Merging → Done)

Synchronous AI (Project AI): Requirements are vague → interactive sidebar conversation with context-aware assistant.

Security Notice

OpenASE launches CLI agents with permissive flags by default (--dangerously-skip-permissions for Claude Code, --yolo for Codex). Designed for local dev, private networks, trusted environments only — not for public-facing deployment.

02

Architecture

OpenASE — Architecture

Distribution

  • Single Go binary (frontend embedded via go:embed)
  • Docker Compose
  • Pre-built releases on GitHub

Required Runtime

  • Go 1.26+ (for building)
  • PostgreSQL (database)
  • No Node.js at runtime (SvelteKit compiled and embedded)

Tech Stack

Layer Technology
Backend Go (single binary)
Frontend SvelteKit (compiled, embedded via go:embed)
Database PostgreSQL (Ent ORM + Atlas migrations)
API REST + WebSocket
Schema atlas.hcl (schema management)

Repository Structure

openase/
├── cmd/openase/            # Go binary entry point
├── internal/               # Core Go packages
│   ├── orchestrator/       # Workflow orchestration engine
│   ├── ticket/             # Ticket management
│   ├── workflow/           # Workflow + Harness definitions
│   ├── agentplatform/      # Agent adapter layer
│   ├── provider/           # Provider configurations
│   ├── runtime/            # Agent runtime management
│   ├── scheduledjob/       # Cron-based ticket creation
│   ├── httpapi/            # REST + WebSocket API
│   ├── webui/              # Embedded SvelteKit UI
│   ├── machinechannel/     # Machine communication
│   └── ... (many more)
├── .codex/skills/          # Codex skills (commit, deploy, land, etc.)
├── web/                    # SvelteKit frontend source
├── SPEC.md                 # Full PRD (Product Requirements Document)
├── AGENTS.md               # Agent usage guide
├── atlas.hcl               # Database schema
└── docker-compose.yml

Target AI Tools

  • Claude Code (--dangerously-skip-permissions)
  • OpenAI Codex (--yolo)
  • Gemini CLI
  • Extensible adapter layer for future agents

Web Access

Default port: 2080 (from SPEC.md port configuration). Browser-based control plane.

03

Components

OpenASE — Components

Core Concepts

Concept Description
Ticket Atomic unit of work; types: feature, bug, doc, security, deploy, etc.
Workflow Defines how a ticket type is handled; binds to an Agent + Skills + Harness
Harness Hard-boundary document constraining agent behavior; what counts as "done"
Status Ticket lifecycle states: Todo → In Progress → In Review → Merging → Done
Hook Actions triggered at state transitions; can block progression on failure
Skill Reusable instruction document giving agents extra capabilities
Agent Runtime mode definition binding a Provider to a Workflow
Provider A registered CLI agent adapter configuration on a specific Machine
Machine Physical/virtual machine registered for running agent tasks
Project AI Synchronous interactive assistant in the control plane sidebar

Built-in Codex Skills (from .codex/skills/)

Skill Purpose
commit Commit changes
deploy-coolify-review-env Deploy to Coolify review environment
deploy-openase Deploy OpenASE
land Land changes (merge)
local-bootstrap-cli-auth-debug Debug CLI authentication
pull Pull latest changes
push Push to remote
report-issue Report issues

Web UI Modules (Control Plane)

Module Features
Tickets Kanban, list view, filtering, comments, dependencies, repo scoping
Agents Registration, real-time monitoring, pause/resume/retire lifecycle
Machines SSH/local/cloud registration, health probes, resource metrics
Workflows Harness editing, status binding, skill binding, version history, impact analysis
Skills Built-in + custom management, workflow binding, Skill Editor
Scheduled Jobs Cron-based ticket creation, manual trigger
Activity Real-time event stream, type filtering, search
Metrics Dashboard Agent performance, ticket throughput analytics
Project AI Context-aware sidebar assistant

Two Execution Patterns

Pattern Description
Fullstack Coder Single agent: Todo → In Progress → In Review → Merging → Done
Mixed Relay Multiple agents, each responsible for one stage: Design → Backend → Frontend → Testing → In Review → Merging → Done
05

Prompts

OpenASE — Prompts

Excerpt 1 — SPEC.md Design Principles (AGENTS.md / SPEC.md)

**Principle 3: Behavior is a managed asset**

Agent behavior definitions (Workflow Harness, Skills, binding relationships) are stored in the 
OpenASE control plane rather than in `.openase/` files inside the project repository. Modifying 
these assets generates in-platform versions and audit records; at runtime, version snapshots are 
materialized into the workspace at startup to ensure traceability, replayability, and stable recovery.

**Principle 4: Trust, but verify**

The platform does not assume that Agent output is always correct. Quality verification is 
implemented through lifecycle Hooks: teams define what checks to run at each stage of a ticket 
(lint, tests, security scanning, etc.), and Hook failures block state transitions. High-risk 
operations require human approval.

Prompting technique: Platform-level behavioral contract vs. per-session prompt injection. OpenASE stores the Harness (agent behavioral guidelines) in the platform's database rather than in the project repository. This means the Harness is versioned, auditable, and applied consistently across all agent runs — unlike most frameworks where the CLAUDE.md can drift.

Excerpt 2 — Built-in Ticket Skill (Skill injection at runtime)

Every Workflow auto-binds a built-in **Ticket Skill** so agents know how to drive status flow. 
Bound skills are injected into the CLI agent's skill directory at runtime 
(`.codex/skills/`, `.claude/skills/`, `.gemini/skills/`).

Prompting technique: Runtime skill injection. Skills are not pre-installed in the repository — they are materialized from the control plane's database into the agent's skill directory when the agent starts work on a ticket. This ensures the agent always has the current version of the skill, not a stale copy committed to the repo.

Excerpt 3 — Harness Concept (from SPEC.md)

A Workflow does not directly "pick a running worker instance"; instead, it binds to an Agent 
definition. The Agent definition then binds to a Provider. That is:

- Provider = an available Coding Agent CLI adapter configuration on a certain Machine
- Agent = the runtime mode definition of a certain Provider within the project  
- Workflow = binds to a certain Agent definition and declares which runtime mode, which machine, 
  and which CLI should drive this type of ticket

Prompting technique: Three-layer behavioral indirection. The Harness → Workflow → Agent → Provider chain means any Workflow can be re-bound to a different agent type without changing the Harness content. This is an inversion of the typical "CLAUDE.md is tied to Claude Code" pattern — OpenASE's Harnesses are agent-agnostic behavioral documents.

09

Uniqueness

OpenASE — Uniqueness

Differs from Seeds

OpenASE is the most architecturally complete AI agent orchestration platform in the corpus. Taskmaster-ai is the closest seed (ticket-driven task management for agents), but OpenASE operates at a fundamentally different level: taskmaster-ai stores tasks in a tasks.json file and exposes them via an MCP server; OpenASE is a full application server with PostgreSQL, multi-machine orchestration, versioned Workflow Harnesses, lifecycle Hooks that block status transitions, and a SvelteKit dashboard embedded in a single Go binary. The Harness concept — a hard-boundary behavioral document versioned in the platform's database and materialized into the agent's workspace at startup — is unique in the corpus and solves a problem no seed addresses: behavioral drift, where an agent's CLAUDE.md evolves differently from what was intended when a ticket was created. The Mixed Relay pattern (multiple specialized agents progressing through design → backend → frontend → testing stages of one ticket) is more structured than any multi-agent pattern in the seeds. The runtime skill injection mechanism (skills materialized from database to agent directory at ticket start, cleaned up after) is also unique.

Positioning

OpenASE is the "Software Engineering OS for the AI era" (per SPEC.md vision). It treats the agent team as a managed workforce with job descriptions (Workflows/Harnesses), capability upgrades (Skills), job postings (Tickets), hiring platforms (Machines), and performance reviews (Lifecycle Hooks). This management layer metaphor is more complete than any other framework in the corpus.

Observable Failure Modes

  1. Security model: Default permissive flags (--dangerously-skip-permissions, --yolo) are appropriate for trusted environments but dangerous otherwise. Deployment in shared environments requires explicit configuration.
  2. PostgreSQL dependency: Requires a Postgres server — cannot run with just a single binary (contrary to the "single binary" marketing claim, which refers to the Go binary itself, not its dependencies).
  3. Adapter coverage: Only Claude Code, Codex, and Gemini CLI are supported. New agent types require new adapters.
  4. Complexity overhead: For small teams or solo developers, the setup overhead (Postgres, Docker, OIDC) may exceed the value compared to simpler tools.
04

Workflow

OpenASE — Workflow

Ticket Lifecycle (Fullstack Coder Pattern)

Status Transition Event Who Acts
Backlog Ticket created Human or Scheduled Job
Todo Ticket prioritized Human
In Progress Agent claims ticket Agent (Ticket Agent)
In Review Agent completes implementation Agent
Merging Review approved Agent or Human
Done Merge completed Agent

Ticket Lifecycle (Mixed Relay Pattern)

Backlog → Design (Design Agent) → Backend (Backend Agent) 
→ Frontend (Frontend Agent) → Testing (Testing Agent) 
→ In Review → Merging → Done

Each agent is responsible for one stage and transitions the ticket to the next status when done.

Lifecycle Hooks

State transitions trigger Hooks that run quality checks (lint, tests, security scans, etc.). Hook failures block the status transition — the agent cannot proceed until the hook passes.

Artifacts Per Phase

Phase Artifact
Workflow design Harness document (behavioral boundaries)
In Progress Activity stream entries + code changes
In Review PR / review submission
Done Merged code + completion record

Approval Gates

Gate Mechanism
Lifecycle Hook failures Block status transition until resolved
Human review toggle Optional; human approval required before Merging status
Auto-assignment Configurable: manual vs AI-based automatic ticket assignment

Scheduled Ticket Creation

Cron-based scheduled jobs create tickets automatically on a schedule, enabling automated recurring tasks (e.g., daily security scans, weekly dependency updates).

06

Memory Context

OpenASE — Memory & Context

State Storage

State Type Storage Persistence
Tickets PostgreSQL Global
Workflows + Harnesses PostgreSQL (versioned) Global
Skills PostgreSQL + runtime injection Global
Activity stream PostgreSQL Global
Agent run history PostgreSQL Global
Machine state PostgreSQL Global

Harness as Versioned Behavioral Memory

Workflow Harnesses are stored in the OpenASE control plane (Postgres) with full version history. When an agent starts a ticket:

  1. The current Harness version is retrieved from the database
  2. A snapshot is materialized into the agent's workspace at startup
  3. This ensures the agent always operates with the version of the Harness that was active when the ticket was created — not a later version that might have changed behavior

This is "behavioral memory with version pinning" — a capability absent from all seeds.

Skill Injection

Skills are injected from the database into the agent's skill directory at runtime:

  • .codex/skills/ for Codex
  • .claude/skills/ for Claude Code
  • .gemini/skills/ for Gemini CLI

At the end of the ticket lifecycle, injected skills are cleaned up. The agent's skill directory is ephemeral; the skills live in the platform.

Cross-Session Handoff

Yes — tickets persist in PostgreSQL. If an agent session is interrupted, the ticket retains its status and all activity records. A new agent session can resume by picking up the same ticket.

Memory Type

proprietary (PostgreSQL + Ent ORM). All state is server-side.

07

Orchestration

OpenASE — Orchestration

Multi-Agent

Yes. OpenASE is explicitly designed for multi-agent execution. Both Fullstack Coder (single agent, all stages) and Mixed Relay (multiple agents, one per stage) patterns are supported.

Orchestration Pattern

sequential for Fullstack Coder; task-decomposition-tree for Mixed Relay (each stage is a node; agents progress through the tree stage by stage).

Isolation Mechanism

process — each agent runs as a separate CLI process on a registered Machine. Multiple Machines can host different Providers, enabling geo-distributed agent fleets.

Execution Mode

event-driven — agents are triggered by ticket status changes. A ticket entering "Todo" status triggers the configured Workflow, which assigns an available Agent.

Multi-Model

Yes — different Workflows can bind to different Providers. A Design Workflow can bind to Claude Code; a Testing Workflow can bind to Codex. This is Workflow-level multi-model routing.

Model Role Mapping

Workflow Type Agent (via Provider)
Coding Claude Code / Codex / Gemini CLI
Design user's choice
Testing user's choice
Any swappable via Provider binding

Lifecycle Hooks (quality gates)

Hooks run at state transitions and can block progression. Hook types include lint, tests, security scans, and custom scripts. This is the closest thing to auto-validators in the corpus — they are enforced at the orchestration level, not just suggested.

Consensus Mechanism

None. Coordination is via ticket status and Hook pass/fail.

Cross-Tool Portability

Medium — the adapter layer supports Claude Code, Codex, and Gemini CLI. New agent types require a new adapter.

08

Ui Cli Surface

OpenASE — UI & CLI Surface

Dedicated CLI Binary

Yes — openase binary (Go, single binary). Not a thin wrapper — it IS the entire server.

Local Web Dashboard

Yes — embedded SvelteKit UI served from the Go binary. No separate web server needed.

Port: 2080 (default, from SPEC.md)

Control Plane Modules

Module Features
Tickets Kanban board, list view, filtering, comments, dependencies, repository scoping
Agents Registration, real-time run monitoring, pause/resume/retire lifecycle
Machines SSH/local/cloud registration, health probes, resource metrics
Workflows Harness editor, status binding, skill binding, version history, impact analysis
Skill Editor Create and edit Skills with preview
Scheduled Jobs Cron-based ticket creation, manual trigger, enable/disable
Activity Real-time event stream, type filtering, keyword search
Updates Team progress threads, comments, revision history
Metrics Dashboard Agent performance metrics, ticket throughput analytics
Project AI Context-aware sidebar assistant (Workflow/Skill/Ticket/Machine focus modes)

Installation

# Docker Compose
git clone https://github.com/pacificstudio/openase
cd openase
docker compose up
# Access at localhost:2080

# Single binary
./openase serve

Security Interface

  • First run: local bootstrap links (no auth)
  • Networked deployment: HTTPS + OIDC (see docs/en/human-auth-oidc-rbac.md)

Observability

  • Real-time activity stream (every agent action logged)
  • Metrics dashboard (performance + throughput)
  • Harness version history (replay capability)
  • Full execution history per ticket

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…