README.md
April 16, 2026 · View on GitHub
OpenASE
Ticket-Driven Automated Software Engineering
OpenASE is an all-in-one platform that turns tickets into working code — AI agents automatically pick up tickets, execute workflows on your machines, and deliver results with full traceability.
🖼️ Product Screenshots
The embedded web UI covers ticket orchestration, AI-assisted planning, skill authoring, and live project tracking.
Live execution
Monitor real project work as tickets move across backlog, todo, in-progress, and review.
Ticket board |
Project AI |
Skill editor |
|
🤔 What is OpenASE?
OpenASE is a single Go binary that ships an API server, workflow orchestrator, and embedded web UI together. It follows a ticket-driven model: every piece of work is a ticket, every ticket has a workflow, and AI agents automatically pick up and execute tickets based on status triggers.
You create a ticket → Orchestrator detects pickup status
→ Agent claims the ticket → Executes workflow on a Machine
→ Activity stream records every step → Ticket completes
No Node.js at runtime — the SvelteKit frontend is compiled and embedded into the Go binary via go:embed.
🧭 Why OpenASE Exists
AI coding agents are powerful — but only when humans stay in control. OpenASE is built around two complementary modes of human–agent interaction:
Asynchronous AI — Ticket Agents
When requirements are clear and a Harness (a hard-boundary document that constrains agent behavior) is in place, the Ticket Agent executes the entire task autonomously. It follows the Workflow's instructions, updates ticket statuses, and completes the work — humans don't need to babysit. Two common patterns:
- Fullstack Coder — A single agent handles the entire lifecycle (
Todo → In Progress → In Review → Merging → Done). - Mixed Relay — Multiple specialized agents collaborate (
Design → Backend → Frontend → Testing → In Review → Merging → Done), each responsible for one stage.
Synchronous AI — Project AI
When requirements are vague or you want to explore before committing to tickets, start a conversation with Project AI — a synchronous assistant in the control plane sidebar. Each tab runs in its own isolated workspace; tabs are independent, parallel, and easy to manage. Project AI can read tickets/workflows/skills, edit harnesses and skills, operate git, and trigger agent runs. As you navigate, it switches between Workflow / Skill / Ticket / Machine focus modes automatically.
Skills — Extending What Agents Can Do
Skills are reusable instruction documents that give agents extra capabilities. Every Workflow auto-binds a built-in Ticket Skill so agents know how to drive status flow. You can bind more built-in skills, author custom ones in the Skill Editor, or import them from your repo. Bound skills are injected into the CLI agent's skill directory at runtime (.codex/skills/, .claude/skills/, .gemini/skills/).
Organization & Project Management
OpenASE supports multi-Organization management out of the box. Each Org contains its own Projects, tickets, workflows, skills, machines, and providers. Cross-Org team collaboration is WIP.
⚠️ Security Notice
To maximize unattended Workflow execution, OpenASE launches CLI agents with permissive flags by default (--dangerously-skip-permissions for Claude Code, --yolo for Codex). Agents can read, write, and execute arbitrary commands on the host without per-action confirmation. You can switch to standard interactive mode per-provider in Provider settings.
- Only run OpenASE on machines where you trust the agent's scope of access.
- This project is NOT designed for public-facing deployment — it targets local dev, private networks, and trusted environments.
- Browser access is always authorization-gated. Fresh installs use local bootstrap links; networked deployments should move to HTTPS + OIDC (see OIDC & RBAC Guide).
Both async and sync AI support multiple agent CLIs. Claude Code and Codex are recommended for production use; Gemini CLI is supported but less stable.
✨ Key Features
📋 Ticket-Driven OrchestrationKanban Board & List Views Parent/Child & Dependency Tracking Custom Statuses & Priorities Repository Scope Binding |
🤖 Multi-Agent SupportClaude Code / Codex / Gemini CLI Real-time Streaming Output (SSE) Agent Lifecycle Management Concurrent Execution Control |
⚡ Workflow EngineMarkdown Harness Documents Skill Binding & Lifecycle Hooks Scheduled Cron Jobs Built-in Role Templates |
🖥️ Machine ManagementLocal / Direct-Connect / Reverse-Connect Websocket Execution + SSH Bootstrap Health Probes & Resource Metrics Connectivity Diagnostics |
🔐 Auth & SecurityOIDC Browser Login (Auth0, Entra ID) Agent Platform Token Auth Org & Project RBAC GitHub Credential Management |
📡 ObservabilityLive Activity Event Stream Agent Run Step Tracking GitHub Webhook Ingestion Project Update Threads |
🚀 From Zero to Running
Fast Path: One-Command Installer
For fresh Linux or macOS machines:
curl -fsSL https://raw.githubusercontent.com/pacificstudio/openase/main/scripts/install.sh | sh
The installer detects OS/arch/package managers, downloads and verifies the matching GitHub release, offers PostgreSQL bootstrap, and writes a runnable ~/.openase/config.yaml and ~/.openase/.env. Docker-backed PostgreSQL is only offered when Docker is already installed and the current user can reach the Docker daemon; otherwise the installer shows the system-package path when available, plus skip.
To pin a specific version:
curl -fsSL https://raw.githubusercontent.com/pacificstudio/openase/main/scripts/install.sh | sh -s -- --version <version>
Build From Source
git clone https://github.com/PacificStudio/openase.git
cd openase
make build-web # build frontend + Go binary
./bin/openase setup # interactive first-run setup
./bin/openase all-in-one --config ~/.openase/config.yaml
On fresh cloud VMs, budget enough memory for the frontend build. In practice make build-web is much more reliable on machines with at least 8 GB RAM, or on a 4 GB droplet after adding swap first.
The control plane is then available at http://127.0.0.1:19836.
For prerequisite installs (Go, Node, PostgreSQL, agent CLIs), full setup walkthrough, run modes (managed user service, split-process, env-only), and validation steps, see the Source Build & Startup Guide.
What's Next?
Follow the User Guide — Quick Start (EN | 中文) to configure ticket statuses, register a machine and agent, create your first workflow, and watch the agent execute.
📊 Roadmap
| Priority | Item | Description |
|---|---|---|
| 🟡 Medium | Remote Runtime Operations | Expand rollout automation, dashboards, and operator tooling around the websocket-only remote runtime plane |
| 🟡 Medium | Windows Support | Native service management and shell-script support outside WSL2 |
| 🟡 Medium | Notification Channels | Webhook, Telegram, Slack, and WeCom notification delivery |
| 🟡 Medium | iOS & Android App | Mobile control plane for monitoring and managing projects on the go |
| 🟡 Medium | Desktop All-in-One App | Standalone desktop application bundling the full OpenASE experience |
| 🟡 Medium | Kubernetes Runtime | Run agent workloads on Kubernetes clusters for elastic scaling |
| 🟢 Future | Multi-org Collaboration | Cross-organization project sharing and permissions |
| 🟢 Future | Plugin Ecosystem | Third-party plugin support for custom tools and integrations |
| 🟢 Stable | Metrics Dashboard | Agent performance metrics, ticket throughput analytics |
🖥️ Control Plane
| Module | Capabilities |
|---|---|
| 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 editing, status binding, skill binding, version history, impact analysis |
| Skills | Built-in & custom skill management, workflow binding |
| 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 |
| Settings | Statuses, repositories, notifications, security, archived tickets |
🏗️ Architecture
| Principle | Description |
|---|---|
| All-Go Monolith | API server, orchestrator, setup flow, and embedded UI in one binary |
| Binary-first | Web UI embedded via go:embed — no Node.js at runtime |
| Ticket-driven | Tickets, workflows, statuses, and activity are the core operating model |
| Multi-agent | Adapter-based support for Claude Code, Codex, and Gemini CLI |
| Git-backed | Workflow harnesses and skills are repo-aware at runtime |
flowchart LR
U[User / Scheduled Job] --> T[Ticket]
T --> O[Orchestrator]
O -->|status trigger| A[Agent]
A --> W[Workflow + Harness]
W --> S[Skills]
A -->|executes on| M[Machine]
M --> R[Results]
R --> E[Activity Stream]
E --> UI[Web Control Plane]
For repository layout, build commands, and quality gates, see the Development Guide.
📖 Documentation
| Document | EN | 中文 |
|---|---|---|
| User Guide | English | 中文 |
| Getting Started | English | 中文 |
| Module Architecture | English | 中文 |
| FAQ | English | 中文 |
| Source Build & Startup | English | 中文 |
| Configuration Reference | English | — |
| CLI Reference | English | — |
| Development Guide | English | — |
| IAM Dual-Mode Contract | English | 中文 |
| WebSocket Runtime Contract | English | 中文 |
| OIDC & RBAC | English | 中文 |
| Observability | English | 中文 |
| Remote Runtime v1 Rollout | English | 中文 |
| Gemini CLI Adaptation | English | 中文 |
| Claude Code Stream Protocol | English | 中文 |
⭐ Star History
📄 License
See LICENSE.
Friendly Link
OpenASE
Create the ticket. The agent does the rest.