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.
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.
AI coding agents are powerful — but only when humans stay in control. The real question is how that control works. OpenASE is built around two complementary modes of human–agent interaction: synchronous and asynchronous.
When the requirements are clear, the acceptance criteria are well-defined, 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 described in each ticket — humans don't need to babysit.
The Workflow defines the status flow and tells the agent how to transition tickets through each stage. It is a soft control surface: you write natural-language instructions in the Workflow to guide how the agent should behave at each status. Here are two common patterns:
-
Fullstack Coder — A single agent handles the entire lifecycle. Set up a simple status flow like
Todo → In Progress → In Review → Merging → Done. The agent picks up a ticket, writes the code, opens a PR, and moves it forward. Human review at theIn Reviewstage is optional — you can keep it for quality gates or let another agent handle the review. -
Mixed Relay — Multiple specialized agents collaborate in a relay. Set up a richer flow like
Design → Backend → Frontend → Testing → In Review → Merging → Done, and assign different agent roles (product manager, backend engineer, frontend engineer, tester) to each stage. Agents hand off work to the next role as the ticket progresses. Human review checkpoints are optional at any stage — you can insert them where you want oversight, or remove them entirely for full autonomy.
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.
When your requirements are still vague, the problem space needs exploration, or you're not ready to commit to a formal ticket — start a conversation with Project AI.
Project AI is a synchronous, interactive assistant that lives in the sidebar of the control plane. Use it to analyze requirements, explore technical approaches, draft PRDs and documentation, scaffold repositories, and prepare everything before kicking off async execution. Each conversation tab runs in an independent workspace — tabs are isolated, can run in parallel, and are easy to manage and review side by side.
What Project AI can do:
- Read ticket details, dependencies, activity history, and run status
- Read Workflow/Harness configuration, Skill code, and machine health
- Inspect git workspace diffs (branch, file changes, repo status)
- Create and update tickets, publish project updates
- Modify Workflows/Harnesses and Skills directly
- Trigger agent execution on tickets
- Operate git (commit, branch, push)
- Control agent runtimes (pause, resume, interrupt)
Multi-agent, isolated workspaces — in one panel: Each Project AI tab spawns its own isolated workspace. You can run multiple agents side by side in the same panel — each working on a different task, in a different branch, with zero interference. No more juggling terminals or switching between IDEs. One unified view to launch, monitor, and interact with all your agents simultaneously.
Context-aware focus: As you navigate the control plane, Project AI automatically switches between 4 focus modes — Workflow, Skill, Ticket, and Machine — injecting the relevant context into the conversation so it always understands what you're looking at.
Best practice: Start with a fuzzy idea, discuss it with Project AI to converge on the best approach, let it draft documents and initialize the repo. Then set up an automated Fullstack or Mixed Relay Workflow, configure ticket dependencies to control parallelism and blocking, and let the system run. With well-structured Harnesses and dependency graphs, the platform can sustain long periods of high-throughput autonomous work with zero human intervention.
Skills are reusable instruction documents that give agents extra capabilities beyond raw coding. Every Workflow automatically binds a built-in Ticket Skill that teaches the Ticket Agent how to update ticket statuses on the platform — this is how agents drive the status flow without hardcoded logic.
Beyond the built-in skills, you can:
- Bind more built-in skills to any Workflow for common operations (e.g., git conventions, PR creation, code review checklists).
- Create custom skills from the Skill Editor to encode project-specific knowledge and procedures.
- Import skills from your repository — ask Project AI to pull skill files from your repo and register them in OpenASE.
When a Workflow runs, its bound skills are injected into the CLI agent's skill directory at runtime (e.g., .codex/skills/, .claude/skills/, .gemini/skills/), so the agent picks them up natively. Project AI has access to all skills regardless of Workflow binding, making it the ideal place to author, edit, and debug skills before deploying them.
Best practice: Use Project AI to create, modify, or debug your skills interactively. Once a skill works as expected, save it to OpenASE and bind it to the relevant Workflows — every Ticket Agent that runs under those Workflows will inherit the skill automatically.
In practice, these two modes are constantly interleaved:
- Requirements change → existing Harnesses go stale and need synchronous refinement.
- Projects iterate → new Harnesses must be authored to prevent agents from drifting off course.
- Tech debt accumulates → scheduled jobs trigger agents to clean it up automatically on a cron.
This interplay of sync and async work deserves a unified home — not scattered across terminals, IDEs, and chat windows. OpenASE brings it all together: multi-agent CLI support (Claude Code, Codex, Gemini CLI), multi-machine scheduling, and a single control plane so you never have to context-switch between tools.
OpenASE supports multi-Organization management out of the box. Each Org contains its own set of Projects, and each Project has independent tickets, workflows, skills, machines, and agent configurations. Cross-Org team collaboration (shared projects, role-based permissions across Orgs) is currently WIP.
To maximize unattended Workflow execution efficiency, OpenASE launches CLI agents with permissive flags by default (e.g., --dangerously-skip-permissions for Claude Code, --yolo for Codex). This means agents can read, write, and execute arbitrary commands on the host machine without per-action confirmation. You can change this to standard (interactive) mode per-provider in the Provider settings page.
Be aware of the risks:
- Only run OpenASE on machines where you trust the agent's scope of access.
- Restrict OS-level permissions (user accounts, filesystem boundaries) as appropriate.
- This project is NOT designed for public-facing deployment. It is intended for local development, private networks, and trusted environments.
- Browser access is always authorization-gated. Fresh local installs start with local bootstrap links instead of anonymous admin access, and shared or networked deployments should move to HTTPS + OIDC as soon as practical. See the OIDC & RBAC Guide for the rollout model.
OpenASE aims to be a full-lifecycle software engineering platform: end-to-end iteration from ticket to deployed code, team collaboration across roles, and multi-repository orchestration — all driven by the ticket-first, agent-native model described above.
|
Kanban Board & List Views Parent/Child & Dependency Tracking Custom Statuses & Priorities Repository Scope Binding |
Claude Code / Codex / Gemini CLI Real-time Streaming Output (SSE) Agent Lifecycle Management Concurrent Execution Control |
Markdown Harness Documents Skill Binding & Lifecycle Hooks Scheduled Cron Jobs Built-in Role Templates |
|
Local / Direct-Connect / Reverse-Connect Machines Websocket Execution + SSH Helper Compatibility Health Monitoring & Probes CPU / Memory / Disk Metrics Connectivity Diagnostics |
OIDC Browser Login (Auth0, Entra ID) Agent Platform Token Auth Org & Project RBAC GitHub Credential Management |
Live Activity Event Stream Agent Run Step Tracking GitHub Webhook Ingestion Project Update Threads |
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.
| Module | Status | Notes |
|---|---|---|
| Tickets | ✅ Stable | CRUD, Kanban/list views, comments, dependencies, parent/child, archiving |
| Agents | ✅ Stable | Registration, run monitoring, streaming output, lifecycle management |
| Workflows | ✅ Stable | Harness editing, status/skill binding, hooks, version history, impact analysis |
| Skills | ✅ Stable | Built-in & custom skills, workflow binding, enable/disable |
| Activity | ✅ Stable | Real-time SSE event stream, filtering, search |
| Updates | ✅ Stable | Threads, comments, revision history |
| Settings | ✅ Stable | Statuses, repositories, notifications, security, archived tickets |
| Scheduled Jobs | ✅ Stable | Cron-based ticket creation, manual trigger, enable/disable |
| Machines (Local) | ✅ Stable | Local machine registration, health probes, resource metrics |
| CLI | ✅ Stable | Dual-layer contract, resource commands, raw API, live streams |
| Setup | ✅ Stable | Interactive terminal setup, Docker PostgreSQL, managed user service (systemd --user on Linux, launchd on macOS) |
| Machines (Remote) | ✅ Stable | Remote Runtime v1 uses websocket-only execution for direct-connect listeners and reverse-connect daemons; SSH is helper-only for bootstrap and diagnostics |
| OIDC Auth & RBAC | ✅ Stable | Browser login, session management, org/project RBAC |
| 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 |
| 🟢 Future | Metrics Dashboard | Agent performance metrics, ticket throughput analytics |
This section walks through everything you need on a fresh machine — from installing system dependencies to opening the web UI.
| Platform | Status | Notes |
|---|---|---|
| Linux (x86_64, arm64) | ✅ Fully supported | Primary development and deployment platform |
| macOS (Apple Silicon, Intel) | ✅ Supported | setup, up/down/restart/logs, and the managed user service use launchd with ~/Library/LaunchAgents/com.openase.plist |
| Windows | Native service management and shell scripts have not been validated. WSL2 is recommended as a workaround |
For fresh Linux or macOS machines, the fastest supported path is the release installer:
curl -fsSL https://raw.githubusercontent.com/pacificstudio/openase/main/scripts/install.sh | shThe installer:
- detects the current OS, architecture, package managers, Docker usability, and writable install targets
- downloads the matching GitHub release archive plus
checksums.txt - verifies the release checksum before installing
openase - offers PostgreSQL bootstrap through a supported system package manager or Docker when available
- writes a runnable
~/.openase/config.yamland~/.openase/.envwhen automatic setup completes successfully
To pin a release version instead of installing the latest release:
curl -fsSL https://raw.githubusercontent.com/pacificstudio/openase/main/scripts/install.sh | sh -s -- --version v0.4.0If you prefer to build from source, continue with the manual steps below.
Install Go 1.26+
# Download (adjust version and OS/arch as needed)
wget https://go.dev/dl/go1.26.1.linux-amd64.tar.gz
# Extract to /usr/local (requires sudo)
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.1.linux-amd64.tar.gz
# Add to PATH — append to ~/.bashrc or ~/.zshrc
export PATH=$PATH:/usr/local/go/bin
# Verify
go version # go1.26.1 linux/amd64Alternative: if using a project-local toolchain:
export PATH=$PWD/.tooling/go/bin:$HOME/.local/go1.26.1/bin:$PATHInstall Node.js 22 LTS or 24 LTS & pnpm (build-time only)
Node.js is only needed to build the frontend. It is not required at runtime.
Use an LTS release: Node 22 LTS is the default recommendation, and Node 24 LTS is also expected to work. Avoid odd-numbered non-LTS releases such as Node 23. The current frontend dependency set includes engines constraints that can cause pnpm to reject versions like v23.11.1 during install or build.
# Option A: via nvm (recommended)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc
nvm install 22
nvm use 22
# Option B: via package manager (Ubuntu/Debian)
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
# Enable corepack for pnpm
corepack enable
# Verify
node --version # v22.x.x
pnpm --version # 10.x.x (via corepack)Install PostgreSQL
You have two choices — let OpenASE setup start a Docker-backed PostgreSQL automatically, or install one yourself.
There is no third setup-managed "user-space local database" path. If your user cannot access Docker, you must prepare PostgreSQL yourself before running openase setup.
Option A: Docker (recommended for local dev)
# Install Docker if not present
sudo apt-get update && sudo apt-get install -y docker.io
sudo usermod -aG docker $USER
newgrp docker # or re-login
# OpenASE setup will create the container for you automaticallyOption B: Bring Your Own PostgreSQL
For macOS local development, prefer a native PostgreSQL install managed by Homebrew or Postgres.app if you do not want Docker to own the database lifecycle.
# macOS via Homebrew
brew install postgresql@16
brew services start postgresql@16
# Verify a DSN that setup can reuse
psql postgres://localhost:5432/postgres?sslmode=disable -c "SELECT 1;"On Linux, a distro package install is the straightforward equivalent:
# Ubuntu/Debian
sudo apt-get install -y postgresql postgresql-client
# Create database and user
sudo -u postgres psql -c "CREATE USER openase WITH PASSWORD 'openase';"
sudo -u postgres psql -c "CREATE DATABASE openase OWNER openase;"
# Verify
psql postgres://openase:openase@localhost:5432/openase?sslmode=disable -c "SELECT 1;"Install Git & other tools
# Ubuntu/Debian
sudo apt-get install -y git make curl wget
# Verify
git --version
make --version(Optional) Install AI Agent CLIs
OpenASE setup will auto-detect these if present on PATH:
| Agent | Install |
|---|---|
| Claude Code | npm install -g @anthropic-ai/claude-code |
| Codex | npm install -g @openai/codex |
| Gemini CLI | npm install -g @google/gemini-cli |
These can also be installed later — setup will seed detected providers.
git clone https://github.com/PacificStudio/openase.git
cd openase
# Build frontend + Go binary in one command
make build-webThis runs the following under the hood:
corepack pnpm --dir web install --frozen-lockfile
corepack pnpm --dir web run build
go build -o ./bin/openase ./cmd/openasemake build-web rebuilds the embedded frontend and then compiles the Go binary. It does not refresh the committed OpenAPI artifacts. If you changed backend API shapes or want to refresh api/openapi.json and web/src/lib/api/generated/openapi.d.ts, run make openapi-generate separately first.
Verify the build:
./bin/openase version./bin/openase setupThe interactive terminal setup will walk you through:
- Database — start a Docker PostgreSQL automatically, or enter an existing PostgreSQL connection (
host,port,database,user,password,sslmode) - CLI detection — checks for
git,claude,codex,geminion PATH - Runtime mode — config-only, or install the managed user service (
systemd --useron Linux,launchdon macOS) - Seed data — creates org, project, ticket statuses, and detected providers
- Local browser bootstrap — after startup, generate a one-time local bootstrap link with
openase auth bootstrap create-link --return-to / --format text
Setup creates the following under ~/.openase/:
~/.openase/
├── config.yaml # Runtime configuration
├── .env # Platform auth token
├── logs/ # Service logs
└── workspaces/ # Agent workspaces
Docker PostgreSQL note: When choosing Docker, setup uses predictable defaults — container
openase-local-postgres, port127.0.0.1:15432, databaseopenase. It generates the password automatically. If your account does not have Docker access, setup does not offer another local-database fallback; prepare PostgreSQL first and then choose the manual connection path.
# All-in-one: API server + orchestrator in a single process
./bin/openase all-in-one --config ~/.openase/config.yamlThe control plane is now available at:
http://127.0.0.1:19836
Tip: Run
./bin/openase doctor --config ~/.openase/config.yamlto diagnose any issues.
# Health checks
curl -fsS http://127.0.0.1:19836/healthz
curl -fsS http://127.0.0.1:19836/api/v1/healthz
# Or use the built-in doctor
./bin/openase doctor --config ~/.openase/config.yamlOpen http://127.0.0.1:19836 in your browser — you should see the OpenASE control plane.
Now that the platform is running, follow the User Guide — Quick Start (EN | 中文) to:
- Configure ticket statuses and connect a repository
- Register a machine and an AI agent
- Create your first workflow and ticket
- Watch the agent execute automatically
Setup can install the managed user service automatically. You can also manage it manually:
./bin/openase up --config ~/.openase/config.yaml # Install & start
./bin/openase logs --lines 100 # Tail logs
./bin/openase restart # Restart
./bin/openase down # StopThe managed service only runs OpenASE itself (openase all-in-one --config ...). It does not manage PostgreSQL for you. If you pointed OpenASE at an existing PostgreSQL instance, keep that database running separately. If setup created a Docker PostgreSQL container, that container is still a separate service boundary from OpenASE.
| Platform | Manager | Service definition | Inspect | Restart | Stop | Logs |
|---|---|---|---|---|---|---|
| Linux | systemd --user |
~/.config/systemd/user/openase.service |
systemctl --user status openase |
systemctl --user restart openase |
systemctl --user stop openase |
journalctl --user -u openase -n 200 -f |
| macOS | launchd |
~/Library/LaunchAgents/com.openase.plist |
launchctl print gui/$(id -u)/com.openase || launchctl print user/$(id -u)/com.openase |
launchctl kickstart -k <target> |
launchctl bootout <target> |
tail -n 200 -f ~/.openase/logs/openase.stdout.log ~/.openase/logs/openase.stderr.log |
On macOS, setup prefers the gui/<uid>/com.openase target and falls back to user/<uid>/com.openase when the login session is attached to that domain instead. Use whichever target launchctl print resolves on your machine for kickstart and bootout.
For long-running Linux server use, systemd --user may also need lingering enabled so the user service survives logout and can start as expected after reboot:
loginctl enable-linger "$USER"Run that once per user account on machines where you expect OpenASE to keep running without an active login session.
Run API server and orchestrator as separate processes:
./bin/openase serve --config ~/.openase/config.yaml
./bin/openase orchestrate --config ~/.openase/config.yamlIf you prefer env vars over config files:
export OPENASE_DATABASE_DSN=postgres://openase:openase@localhost:5432/openase?sslmode=disable
export OPENASE_SECURITY_CIPHER_SEED=shared-cluster-seed
export OPENASE_SERVER_PORT=19836
export OPENASE_ORCHESTRATOR_TICK_INTERVAL=2s
./bin/openase all-in-oneOr source from ~/.openase/.env:
set -a && source ~/.openase/.env && set +a
./bin/openase all-in-one| Variable | Default | Description |
|---|---|---|
OPENASE_SERVER_PORT |
19836 |
HTTP server port |
OPENASE_DATABASE_DSN |
— | PostgreSQL connection string (required) |
OPENASE_SECURITY_CIPHER_SEED |
empty | Optional shared encryption seed for GitHub credential storage; set this explicitly when different environments must read the same encrypted records |
OPENASE_ORCHESTRATOR_TICK_INTERVAL |
5s |
Orchestrator polling interval |
OPENASE_LOG_FORMAT |
text |
Log format (text or json) |
OPENASE_LOG_LEVEL |
info |
Log level |
OPENASE_SECURITY_CIPHER_SEED maps to security.cipher_seed in config files. If it is unset, OpenASE keeps the legacy behavior and derives the GitHub credential cipher seed from database.dsn.
--config <path>flag./config.yaml(or.yml,.json,.toml)~/.openase/config.yamlOPENASE_*environment variables + built-in defaults
- Fresh local installs use one-time local bootstrap links for browser authorization; they no longer expose anonymous admin access.
- OIDC remains the long-term browser auth path for shared, team, and networked deployments.
- If an active OIDC rollout breaks login, use
openase auth break-glass disable-oidc, then re-enter throughopenase auth bootstrap create-link --return-to /admin/auth --format text.
OIDC supports standard providers: Auth0, Azure Entra ID, and any OpenID Connect compliant IdP. See the IAM Dual-Mode Contract (EN | 中文) for the product model, and the OIDC & RBAC Guide (EN | 中文) for setup.
| 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 |
openase/
├── cmd/openase/ # CLI entrypoint
├── internal/
│ ├── app/ # App wiring (serve / orchestrate / all-in-one)
│ ├── httpapi/ # HTTP API, SSE, webhooks, embedded UI
│ ├── orchestrator/ # Scheduling, health checks, retries
│ ├── workflow/ # Workflow service, harness, hooks, skills
│ ├── agentplatform/ # Agent token auth
│ ├── setup/ # First-run setup
│ ├── builtin/ # Built-in role & skill templates
│ └── webui/static/ # Embedded frontend output
├── web/ # SvelteKit control plane source
├── docs/
│ └── guide/ # User guide (per-module docs)
├── config.example.yaml
├── Makefile
└── go.mod
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]
The embedded web UI provides a complete project management experience:
| 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 |
OpenASE follows a GitHub-style dual-layer CLI contract:
openase ticket list --status-name Todo --json tickets
openase ticket create --title "Fix login bug" --description "..."
openase ticket update --status_name "In Review"
openase ticket comment create --body "Blocking dependency found"
openase ticket detail $PROJECT_ID $TICKET_ID
openase workflow create $PROJECT_ID --name "Codex Worker"
openase scheduled-job trigger $JOB_ID
openase project update --description "Latest context"openase api GET /api/v1/projects/$PID/tickets --query status_name=Todo
openase api PATCH /api/v1/tickets/$TID --field status_id=$SIDopenase watch tickets $PROJECT_ID--jq '<expr>' # JQ filter
--json field1,field2 # Select fields
--template '{{...}}' # Go templateBoth --kebab-case and --snake_case flag spellings are accepted.
Agent workers inherit environment variables from the workspace wrapper:
| Variable | Purpose |
|---|---|
OPENASE_API_URL |
Platform API endpoint |
OPENASE_AGENT_TOKEN |
Agent authentication token |
OPENASE_PROJECT_ID |
Current project context |
OPENASE_TICKET_ID |
Current ticket context |
make hooks-install # Set up git hooks (lefthook)
make check # Run formatting + backend coverage checks
make build-web # Build frontend assets + Go binary (does not refresh OpenAPI artifacts)
make build # Build Go binary only (uses existing frontend)
make run # Run API server in dev mode
make doctor # Run local environment diagnosticsmake web-format-check # Prettier formatting
make web-lint # ESLint checks
make web-check # Svelte type checking
make web-validate # All of the abovemake openapi-generate # Regenerate api/openapi.json + TS types
make openapi-check # Verify committed artifacts are up-to-datemake test # Go test suite
make test-backend-coverage # Full backend tests + coverage gate
make lint # Lint changes since origin/main
make lint-all # Full lint suite| Document | EN | 中文 |
|---|---|---|
| User Guide | English | 中文 |
| Getting Started | English | 中文 |
| Module Architecture | English | 中文 |
| FAQ | English | 中文 |
| Source Build & Run | 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 | 中文 |
See LICENSE.
OpenASE
Create the ticket. The agent does the rest.



