集群需先装好 cert-manager,否则安装会失败;Task 引用的 Workspace、AgentConfig 和凭据 Secret 必须已存在;使用 Codex OAuth 凭据重复运行时需在 Secret 上启用 token refresh。
kelos
kelos-devApache-2.0活跃维护基于 Kubernetes 的编排框架,把 Claude Code、Codex、Cursor 等自主编码 Agent 当作集群工作负载统一调度,适合在 CI/CD 流水线里批量跑自动化编码任务。
Kelos - The Kubernetes-native framework for orchestrating autonomous AI coding agents.
curl -fsSL https://raw.githubusercontent.com/kelos-dev/kelos/main/hack/install.sh | bash
kelos installREADME 未说明具体硬件要求,仅要求 Kubernetes 1.28+ 集群并预装 cert-manager。
在 Kubernetes 上定义并编排自主 AI 编码代理工作流的框架
基于 Kubernetes 的编排框架,把 Claude Code、Codex、Cursor 等自主编码 Agent 当作集群工作负载统一调度,适合在 CI/CD 流水线里批量跑自动化编码任务。
核心能力
- 用 Task、Session、Workspace 等 CRD 声明式定义代理任务
- 复用 Workspace 与 AgentConfig 共享仓库、技能和工具
- 支持 Claude Code、Codex、Gemini、Cursor 等多家代理
- 由 GitHub、Jira、cron、webhook 事件触发 TaskSpawner
- 交互式 Session 可保持存活并从终端或浏览器重连
容易踩的坑
- v0.64.0最新正式版2026-11-08 · 2026-11-08 23:25 UTC
API Changes
- AgentConfig MCP servers accept
alwaysLoad. Whentrue, Claude Code loads that server's tools at session start instead of deferring them behind tool search. (#1852, @knechtionscoding) - Add
podOverrides.runtimeClassNameso Task, Session, and WorkerPool agent pods can run under a sandboxed RuntimeClass such as gVisor or Kata Containers. (#1844, @Temikus)
Features
- Update cursor image from 2026.10.22-27dcf5f to 2026.11.05-86047df (#1877, @app/kelos-bot)
- Update codex image from 0.166.0 to 0.167.0 (#1876, @app/kelos-bot)
- Update claude-code image from 2.1.318 to 2.1.319 (#1879, @app/kelos-bot)
- The Console session header now shows the name of the session's credential Secret when one is configured. (#1878, @gjkim42)
- Update gemini image from 0.66.0 to 0.67.0 (#1872, @app/kelos-bot)
- Update claude-code image from 2.1.317 to 2.1.318 (#1871, @app/kelos-bot)
- The Console sidebar opens the main conversation through the Session name and keeps loaded subsessions visible without expand/collapse arrows. Individual subsessions can now be deleted after confirmation, stopping their work and removing retained Kelos history while preserving shared workspace files and other conversations. (#1870, @gjkim42)
- Update claude-code image from 2.1.316 to 2.1.317 (#1869, @app/kelos-bot)
- The web console supports named subsessions with independent conversation context and history in a shared Session workspace. Create subsessions from the parent Session's sidebar action, switch between conversations in the sidebar, and see their activity states while sharing files and the Git branch. (#1868, @gjkim42)
- Console Sessions now have shareable, bookmarkable URLs using namespace and resource name. Session links survive token sign-in, refresh, and browser Back/Forward navigation. (#1867, @gjkim42)
- AgentConfig MCP servers accept
- v0.63.02026-11-01 · 2026-11-01 23:53 UTC
查看更新说明
Features
- Update opencode image from 1.19.4 to 1.19.5 (#1857, @app/kelos-bot)
- The Console now supports optional Web Push notifications for Session completion, failures, and input requests while the web app is closed or suspended. Enable consoleServer.webPush with a dedicated subscription-storage namespace, a persistent VAPID key Secret, and an operator contact URL, then reopen the Console with browser notifications enabled to register the device. On iPhone and iPad, use the installed Home Screen web app. (#1865, @gjkim42)
- Update claude-code image from 2.1.314 to 2.1.316 (#1864, @app/kelos-bot)
- Update claude-code image from 2.1.312 to 2.1.314 (#1862, @app/kelos-bot)
- Update codex image from 0.165.0 to 0.166.0 (#1863, @app/kelos-bot)
- Bundled agent images include passwordless sudo by default, allowing agents and workspace setup commands to install system packages when Pod security settings permit it. Agents continue to start as UID 61100. (#1861, @gjkim42)
- Update gemini image from 0.65.0 to 0.66.0 (#1850, @app/kelos-bot)
- Update codex image from 0.164.0 to 0.165.0 (#1849, @app/kelos-bot)
- Update claude-code image from 2.1.311 to 2.1.312 (#1848, @app/kelos-bot)
- The Console now supports suspending and resuming automatic task creation from TaskSpawner details. Existing Tasks continue running, and manual task runs remain available while a TaskSpawner is suspended. (#1847, @gjkim42)
- Update claude-code image from 2.1.310 to 2.1.311 (#1846, @app/kelos-bot)
Bug Fixes
- When Console Web Push is enabled, kelos install now creates its storage namespace and persistent VAPID signing Secret, validates existing keys, and preserves them across upgrades. The development Console enables Web Push for background Session notifications; reopen the installed Home Screen app after deployment to register. (#1866, @gjkim42)
- The console displays readable turn finish times, including in retained history. Live turn separators show finish times before their durations. Full timestamps are accessible on hover, keyboard focus, or tap, and failed and interrupted turns are labeled explicitly. (#1858, @gjkim42)
- The Helm chart now installs the controller manager, its webhook Service, Certificate, Issuer, leader-election RBAC, and the telemetry CronJob into the Helm release namespace instead of always using
kelos-system. The chart rendersNamespace/kelos-systemonly when the release namespace iskelos-system; other release namespaces must already exist or be created with--create-namespace. Releases installed intokelos-systemandkelos installare unaffected. (#1823, @gjkim42) - Action required for releases installed into a namespace other than
kelos-system: the upgrade moves these resources into the release namespace and deletes thekelos-systemnamespace, including anything else in it, unless you first runkubectl annotate namespace kelos-system helm.sh/resource-policy=keep. The telemetry installation ID is regenerated. Upgrade in one step with--set crds.install=trueinstead of the two-phase flow; if the CRDs are managed outside Helm, adopt them into the release first. Withcrds.install=false, installs and upgrades now fail when the existingtasks.kelos.devCRD sends conversion requests to a namespace other than the release namespace. See "Release Namespace" in the chart README. (#1823, @gjkim42)
- v0.62.02026-10-27 · 2026-10-27 12:03 UTC
查看更新说明
API Changes
- AgentConfig inline skills can bundle supporting text files and executable scripts using spec.plugins[].skills[].files in v1alpha2. Use kelos create agentconfig --skill name=DIRECTORY to package SKILL.md and its supporting files into a manifest. (#1841, @gjkim42)
Features
- The Console now supports manually running TaskSpawners with optional YAML or JSON template values and opens the created Task's logs and manifest. Authenticated context sources require explicit read access to the referenced Secrets for the Console ServiceAccount. (#1845, @gjkim42)
- Sessions integrate native goal and loop commands where the configured agent supports them. Claude Code supports its built-in /goal and /loop; Codex supports native goals and an enabled loop skill; OpenCode supports registered goal and loop commands. Terminal and web composers reflect runtime availability. Scheduling and persistence remain owned by the agent or extension, and Kelos idle policies still apply between runs. (#1840, @gjkim42)
- Update codex image from 0.163.0 to 0.164.0 (#1842, @app/kelos-bot)
- Update opencode image from 1.19.3 to 1.19.4 (#1838, @app/kelos-bot)
- Update claude-code image from 2.1.305 to 2.1.310 (#1837, @app/kelos-bot)
- Update gemini image from 0.64.0 to 0.65.0 (#1835, @app/kelos-bot)
- Update cursor image from 2026.10.16-e3cb207 to 2026.10.22-27dcf5f (#1833, @app/kelos-bot)
- The Console now lists individual background tasks with separate elapsed timers, including during foreground turns, preserving each duration across reconnects and page refreshes. (#1839, @gjkim42)
- The Kelos Console highlights pending input requests for Ready Sessions that have not been suspended by the user, and includes them in the Sessions attention count. Answering or cancelling a request clears its alert. (#1836, @gjkim42)
- Update claude-code image from 2.1.304 to 2.1.305 (#1834, @app/kelos-bot)
- Update claude-code image from 2.1.303 to 2.1.304 (#1832, @app/kelos-bot)
- Update claude-code image from 2.1.302 to 2.1.303 (#1830, @app/kelos-bot)
- v0.61.02026-10-26 · 2026-10-26 22:38 UTC
查看更新说明
API Changes
- Console notifications now cover Sessions throughout the active namespace, can recover the latest retained alert after connection interruptions, and use service-worker notifications. Settings includes a test notification to check delivery. The Session API exposes the latest notification in status.lastNotification. Keep the console open to receive alerts. (#1814, @gjkim42)
- GitHub webhook filters in v1alpha2 TaskSpawner and SessionSpawner now support requestedReviewer to match an individual requested reviewer's login exactly and case-sensitively. The field also supports exclusion rules without an event scope; team review requests and events without a requested reviewer do not match. (#1813, @gjkim42)
Features
- Update codex image from 0.162.1 to 0.163.0 (#1826, @app/kelos-bot)
- Update gemini image from 0.63.0 to 0.64.0 (#1819, @app/kelos-bot)
- Update cursor image from 2026.10.01-e373342 to 2026.10.16-e3cb207 (#1820, @app/kelos-bot)
- Update claude-code image from 2.1.300 to 2.1.302 (#1825, @app/kelos-bot)
- Update opencode image from 1.19.0 to 1.19.3 (#1827, @app/kelos-bot)
- Session composers highlight shell and goal commands while typing. The web composer gives commands distinct styling, shows command-specific submit actions, and explains incomplete or unavailable commands. (#1829, @gjkim42)
- The Console Changes tab now offers Uncommitted and Branch changes scopes. Uncommitted edits clear when committed; branch review keeps committed work visible against a selectable base branch. Refreshes and commits preserve the selected scope and base. (#1828, @gjkim42)
- Session unread markers synchronize across browsers and devices for the same signed-in user. Reading a result clears its marker in other browsers on their next refresh. Token-authenticated browsers share a common read state. (#1822, @gjkim42)
- Update claude-code image from 2.1.296 to 2.1.300 (#1818, @app/kelos-bot)
- The Console marks completed and failed Session results as unread with a blue dot, a text label, and a count on Sessions. Viewing the result in the focused Conversation clears its marker, with read state remembered across refreshes and tabs in the same browser. (#1817, @gjkim42)
Bug Fixes
- Console proxy authentication now supports up to 1,024 groups and a 64 KiB group header, allowing GitHub users with hundreds of organization and team memberships to sign in. GitHub authentication also supports consoleServer.auth.github.team to restrict sign-in to a single team within the configured organization. (#1821, @gjkim42)
- v0.60.02026-10-12 · 2026-10-12 00:46 UTC
查看更新说明
Features
- Update claude-code image from 2.1.295 to 2.1.296 (#1810, @app/kelos-bot)
- Update codex image from 0.162.0 to 0.162.1 (#1811, @app/kelos-bot)
- Update opencode image from 1.18.35 to 1.19.0 (#1812, @app/kelos-bot)
- Update gemini image from 0.62.0 to 0.63.0 (#1800, @app/kelos-bot)
- Update claude-code image from 2.1.290 to 2.1.295 (#1799, @app/kelos-bot)
- Update opencode image from 1.18.34 to 1.18.35 (#1801, @app/kelos-bot)
- Update codex image from 0.160.1 to 0.162.0 (#1806, @app/kelos-bot)
- Update opencode image from 1.18.32 to 1.18.34 (#1777, @app/kelos-bot)
- Update cursor image from 2026.09.26-dd393fe to 2026.10.01-e373342 (#1778, @app/kelos-bot)
- Update gemini image from 0.61.0 to 0.62.0 (#1783, @app/kelos-bot)
- Update codex image from 0.159.3 to 0.160.1 (#1791, @app/kelos-bot)
- Update claude-code image from 2.1.289 to 2.1.290 (#1796, @app/kelos-bot)
Bug Fixes
- Fixed the Task controller stopping all Task reconciliation when a request for a finished pod's logs never received a response. The log read now times out after 15 seconds. (#1798, @sperano)
- The console now lets you scroll up during streaming responses without being pulled back to the bottom. Automatic following resumes when you scroll to the bottom or choose Jump to latest. (#1802, @gjkim42)
- The Console opens an accessible remembered or default namespace while other namespaces load in the background, reduces namespace discovery delays for OIDC and GitHub sign-in, and refreshes namespace choices automatically when the picker is opened or focused. (#1797, @gjkim42)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Kelos lets you define what coding agents do and the environments they run in: repositories, files, skills, tools, compute, environment variables, and secrets. Reuse those definitions for individual tasks, persistent sessions, and automated pipelines on Kubernetes.
Kelos supports Claude Code, OpenAI Codex, Google Gemini, OpenCode, Cursor, and custom agent images.
Example: a coding task with its environment
Combine a shared repository and skills with compute and environment settings for a task that fixes tests and opens a pull request:
apiVersion: kelos.dev/v1alpha2
kind: Task
metadata:
name: fix-tests
spec:
prompt: "Fix the failing tests, run the test suite, and open a pull request."
worker:
type: codex
credentials:
type: oauth
secretRef:
name: codex-credentials
workspaceRef:
name: my-workspace
agentConfigRefs:
- name: team-config
podOverrides:
resources:
requests:
cpu: "2"
memory: 4Gi
env:
- name: APP_ENV
value: test
The referenced resources must already exist: a Workspace defines the repository, injected files, setup command, and Git credential Secret reference; an AgentConfig supplies your team's instructions, skills, and tools; and a credential Secret authenticates the agent. For ordered stages and parallel tasks, see the pipeline examples.
For repeated runs with Codex OAuth credentials, enable token refresh on the credential Secret.
Why Kelos?
- Define agent compute, container images, volumes, environment variables, and secret references alongside the work to run.
- Reuse repositories, setup commands, instructions, skills, and tools across agents.
- Keep workflow and environment definitions in Git as Kubernetes resources.
- Keep interactive Sessions alive and reconnect from terminal or web clients.
- Trigger work from GitHub, Jira, Linear, cron schedules, or generic webhooks.
- Observe, limit, and operate agent workloads with familiar Kubernetes controls.
Quick Start
You need a Kubernetes 1.28+ cluster with cert-manager installed.
Install the CLI:
curl -fsSL https://raw.githubusercontent.com/kelos-dev/kelos/main/hack/install.sh | bash
Homebrew and source installs are also available:
brew tap kelos-dev/tap
brew install kelos
# Or:
go install github.com/kelos-dev/kelos/cmd/kelos@latest
Install Kelos:
kelos install
For Helm installations and upgrades, see the chart documentation.
Install the first-party Kelos skill in your coding agent:
npx skills add kelos-dev/kelos
The skill teaches your agent how to configure Kelos, create the right resources, operate workloads, and troubleshoot failures. You can now use Kelos without writing configuration files or assembling CLI commands by hand.
Usage
Use the Kelos skill
Ask your coding agent to use the /kelos skill. Describe the outcome you want,
the agent provider, and the repository; the skill handles the Kelos resources
and commands.
Set up a repository
Using the /kelos skill, configure Kelos on my current cluster for OpenAI Codex
and https://github.com/your-org/your-repo.
Name the Workspace my-workspace. Use my existing local Codex OAuth credentials.
Ask before creating or replacing any Kubernetes Secret, then verify the setup
with a small read-only Task.
Create your first Task
Using the /kelos skill, create a Codex Task in my-workspace with this
prompt: "Add a hello world program in Python."
Run the Task, watch it until it finishes, and show me the logs and result.
Start a persistent session
Using the /kelos skill, create a persistent Codex Session named my-session for
my-workspace, then connect me to it.
Automate issue fixes
Using the /kelos skill, create a webhook-based TaskSpawner for GitHub issues
labeled "agent-ready" in your-org/your-repo.
Each task should reproduce the issue, add a tested fix, and open a pull request
without merging it. Limit concurrency to 3 and runtime to 1 hour. Show me the
resources before applying them.
Build your own self-development setup
Using the /kelos skill, use this repository's self-development/ setup as a
reference and create a minimal self-development setup for
https://github.com/your-org/your-repo.
Start with issue pick-up and pull request review. Reuse shared configuration,
prefer GitHub webhooks, and show me the resources before applying them.
Troubleshoot a failed workload
Using the /kelos skill, investigate why Task my-task failed in the default
namespace. Do not print Secret values. Fix configuration problems if it is safe
to do so, then retry and watch the Task.
These prompts are starting points. Your agent will inspect the cluster and ask for missing choices or credentials when needed.
Use scoped credentials, protected branches, and workload limits for autonomous agents.
Use the CLI directly
Initialize ~/.kelos/config.yaml, then add your agent credentials using the
comments in the generated file:
kelos init
Create a Workspace
kelos create workspace my-workspace \
--repo https://github.com/your-org/your-repo.git \
--ref main
Create a Task
Create and watch a Task in that Workspace:
kelos run \
--workspace my-workspace \
--prompt "Add a hello world program in Python" \
--watch
The command prints the generated Task name. Use it to stream the agent logs:
kelos logs TASK_NAME -f
Start a Session
Replace the credential placeholder in the Session example, then apply and connect to it:
kubectl apply -f examples/16-session/
kelos session connect interactive-review
Use the Kelos Console
To inspect Kelos resources and create, organize, and chat with Sessions in a browser, enable the optional Console server. Follow the Kelos Console guide to configure its shared token and access the cluster-internal web application.
See the configuration reference for other agents and authentication options.
What You Can Build
- Developer-guided work: reconnect to a long-running Session from a terminal or browser.
- Event-driven workers: turn issues, pull requests, webhooks, and schedules into agent Tasks.
- Agent pipelines: sequence implementation, review, testing, and delivery.
- Repository fleets: fan out the same change across many services.
- Self-development loops: let specialized agents triage, implement, review, and maintain a project continuously.
Kelos uses Kelos to develop itself. The self-development setup shows the agents and workflows running the project.
How It Works
Tasks and Sessions reference shared Workspace and AgentConfig resources through their worker configuration. Each worker selects its agent, model, image, and Kubernetes runtime settings. The controller turns Kelos resources into Pods, Jobs, and StatefulSets.
Core Primitives
| Resource | Purpose |
|---|---|
Task | Run one agent job |
TaskPipeline | Run ordered Task stages with matrix fan-out |
Session | Keep an interactive agent conversation running |
Workspace | Give agents a Git repository, injected files, and setup commands |
AgentConfig | Share instructions, skills, plugins, and MCP servers |
TaskSpawner | Create Tasks from events or schedules |
SessionSpawner | Create Sessions from GitHub webhooks |
WorkerPool | Maintain reusable agent workers |
Task status records useful results such as branches, commits, pull requests, and token usage. The resources remain ordinary Kubernetes objects, so advanced users can review them, keep them in Git, or manage them with existing delivery tools.
See the API and CLI reference for the underlying fields and commands.
Documentation
| Need | Documentation |
|---|---|
| Resource fields and CLI commands | Reference |
| Ready-to-apply patterns | Examples |
| GitHub, Jira, CI, and webhook connections | Integration guide |
| Console and interactive Sessions | Session example and Console guide |
| Custom agent containers | Agent image interface |
| Helm installation and upgrades | Chart documentation |
| Contributing | Contributing guide |
Development
Use the project Makefile:
make update
make verify
make test
make test-integration
make build
See the contributing guide for development setup and pull request requirements.