opencode-manager

chriswritescode-devMIT活跃维护

自托管的 OpenCode 网页控制台,把会话、Git、终端和定时任务集中到一个界面,手机或桌面浏览器都能远程管理编码 Agent。

A self-hosted command center for OpenCode. Sessions, git, terminal, and schedules in one web app, from your phone or desktop.

v1.1.0发布于 2026-10-26 01:16 UTC996star +68 / 7 天126fork同步于 2026-11-10 11:51 UTC

怎么上手

由 README 提炼,执行前请确认
curl -fsSL https://opencodemanager.app/install | sh
硬件要求按 README 说明

README 未说明具体硬件要求,只要求安装 Docker 与 Compose v2

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管的 OpenCode 网页控制台,把会话、Git、终端和定时任务集中到一个界面

自托管的 OpenCode 网页控制台,把会话、Git、终端和定时任务集中到一个界面,手机或桌面浏览器都能远程管理编码 Agent。

核心能力

  • 在同一个 Web 应用里管理 OpenCode 会话
  • 集成 Git 操作与终端
  • 支持定时任务调度
  • 桌面与手机浏览器均可访问
  • 提供 ocm 命令行工具

容易踩的坑

需要 Docker 与 Compose v2 环境;默认监听 5003 端口,首次启动需创建管理员账号;安装脚本会询问是否共享本机内容

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.1.0
  1. v1.1.0OpenCode Manager v1.1.0最新正式版2026-10-26 · 2026-10-26 01:16 UTC

    Highlights

    • Linked OpenCode servers: pair any machine running opencode serve with ocm link and a QR code, then run sessions, terminals, schedules, multi-runs, goals and permission modes on it from Manager. Linked servers' projects appear on the home page.
    • Repository secrets and variables: GitHub Actions–style global, repository and environment secrets and variables, mapped through .ocm/project.json into agent shells, terminals, project actions and sandboxed shells, with secret values masked in tool output.
    • QR device pairing: Settings → Account → Connect a device signs in a phone or browser with a QR code, each with its own session.
    • Sandboxed schedules: a schedule can run each run in its own microVM, with optional CPU and memory limits.
    • Voice conversation mode: hands-free talk with the agent from the composer, with replies read aloud (now also on iOS).
    • Offline start: the app restores the signed-in session and cached lists before the network answers.
    • Sessions tool panel: on desktop the session picker lives in the right tool panel, replacing the Activity tool.

    What's Changed

    Features

    • feat(servers): link remote OpenCode servers with QR pairing (#442, #445): terminals, notifications, permission modes, goals, multi-runs and schedules on linked servers; shared model favorites, recents and variants; a compact server switcher. The separate server page is replaced by linked-server projects on the home page.
    • feat(secrets): repository secrets and variables for agent shells and terminals (#432): a Secrets tool on repository pages, a global section in Settings → OpenCode Config, and the env mapping shown in trust review.
    • feat(device-pairing): pair phones and browsers with a QR code (#461)
    • feat(schedules): run scheduled jobs in a per-job sandbox microVM (#469)
    • feat(frontend): hands-free voice conversation mode in the composer (#459)
    • feat(frontend): persist the query cache and restore the signed-in session offline (#463)
    • feat(sessions): move the session picker into the desktop right tool panel (#471)
    • feat(frontend): mobile sessions sheet and session details header (#462), with context usage on the composer model pill.
    • feat(frontend): restyle the session transcript as a plain log with collapsible tool details (#457)
    • feat(frontend): composer layout refresh and activity scanner under the composer (#454)
    • feat(frontend): in-row mobile voice recorder (#456) and mobile add-repo action in the search row (#458)
    • feat(sessions): full-screen mobile question sheet with persisted draft answers (#447)
    • feat(navigation): drag-resizable desktop sidebar (#443)
    • feat(header): move mobile reports into the More menu and compact the header (#444)
    • feat(chat): dedicated card for Code Mode execute calls and images returned by tools (#440)
    • feat(ocm-cli): ocm link, ocm login --name, and warp replaces the ocm process with opencode.

    Fixes

    • fix(auth): update the auth stack, make session revocation immediate and stop logging tokens (#455); auth rate limiting keys on the socket address only.
    • fix: issues found in a full desktop and mobile evaluation (#460): TTS on iOS, STT endpoints with a trailing /v1, terminal output capture, git identity validation.
    • fix(events): clear stale pending questions from remote servers (#451, #452)
    • fix(ocm-cli): detect the OpenCode service in ocm link (#449)
    • fix(sessions): keep the question card within the space above the prompt (#448)
    • fix(git): refresh branch labels after branch changes (#439)
    • fix(notifications): phrase permission labels without losing acronyms (#466)
    • fix(schedules): fill available panel height with the jobs table (#467)
    • refactor(activity): remove the compact activity list from the mobile More drawer (#468)
    • fix(frontend): collapse the linked-server project header when a tool panel is docked

  2. v1.0.1OpenCode Manager v1.0.12026-10-16 · 2026-10-16 21:33 UTC
    查看更新说明

    Highlights

    • Active work: one place to see which sessions need input, are running, or finished recently, across every repository. It appears as an Activity tool on the desktop tool rail, as an Active tab in the session picker, and at the top of the mobile More drawer.
    • Per-session sandboxing: each sandboxed session runs its agent shell in its own microVM, which mounts only that session's repository or worktree. You can toggle it per session from the composer and set CPU and memory per session.
    • Agent-built change walkthroughs: a separate walkthrough agent session reads the diff and builds an interactive HTML walkthrough. You can stop it, refine it, or open its session.
    • HTML artifacts: an agent can write a self-contained HTML page and show it inline in the chat with the ocm tool's show_artifact action.
    • Session picker tabs: switch between Active, Sessions and Projects with Ctrl+S.
    • Read what's on screen: leader then S reads aloud the assistant messages currently visible.

    What's Changed

    Features

    • feat(activity): surface active work across the session picker, tool rail and mobile (#436, #438): grouped as Needs input, Running and Recent. Subagent work rolls up to its root session, worktree sessions show under the repository that owns them, and the sidebar and repo cards show an activity spinner. The recent window is set in Settings → General → Activity (15 minutes to 24 hours, default 30 minutes).
    • feat(sandbox): per-session sandbox VMs with resource settings and provider arbitration (#430):
      • One microVM per sandboxed root session; child sessions inherit the setting.
      • New sessions are sandboxed by default while sandbox support is on.
      • VMs are removed when a session's sandbox is turned off, the session is deleted, or the VM sits idle. A cap limits how many VMs run at once.
      • When another sandbox provider such as opencode-forge also wants to wrap a command, one provider is chosen per call, and the tool call badge shows which one ran it.
    • feat(walkthrough): build the change walkthrough in a spawned agent session (#435, #437): replaces the stop-by-stop walkthrough. A version appears in the panel as soon as one is published, and the build stops after 15 minutes. The open_walkthrough tool now waits until the walkthrough is ready.
    • feat(walkthrough): stop an in-flight change walkthrough generation (#417)
    • feat(artifacts): render agent HTML files inline in the session chat (#420): the page renders in a sandboxed frame with Reload and Open in new tab. It must be an .html or .htm file of at most 5 MB inside the session directory.
    • feat(sessions): switch between sessions and projects in the session picker (#425)
    • feat(tts): play TTS for visible messages with a keyboard shortcut (#426): the floating speaker button also reads the replies on screen when you have scrolled up.
    • feat(chat): tailor replies for mobile and text-to-speech (#429): prompts sent from a phone ask the agent for replies that read well on a small screen and aloud.
    • feat(markdown): render inline images in messages and markdown files (#424)
    • feat(sessions): show background activity for shells and child sessions (#419)
    • feat(composer): keep the mobile send button and move dictation into the tools menu (#423)
    • feat(workspaces): group multi-run worktrees in the worktrees tab (#415)
    • feat(session): show the workspace branch in the session detail header

    Fixes

    • fix(permissions): prioritize the viewed session and add request context to the permission dialog (#428)
    • fix(session): stop the background activity indicator going stale (#431), and follow a moved session's new directory without a reload.
    • fix(sse): close the event stream on pagehide and reconnect on bfcache restore (#434)
    • fix(sessions): match OpenCode TUI context usage (#421)
    • fix(tts): prevent overlapping playback and corrupted audio cache (#416)
    • **fix(chat):
  3. v1.0.0OpenCode Manager v1.0.02026-10-09 · 2026-10-09 15:58 UTC
    查看更新说明

    Highlights

    • Desktop tool panel: Files, Source Control, Terminal, Walkthrough, Preview, MCP, Skills, Actions and Schedules dock in a right-side panel on desktop. Mobile keeps its drawers.
    • Change walkthroughs: an agent explains a session's changes stop by stop. You can walk through the session, uncommitted, staged, unstaged, branch or pull request changes, and an agent can open the walkthrough itself.
    • Multi-run fusion: combine two to five completed multi-run results into one fused session, from a new runs sheet.
    • App-wide keyboard shortcuts, with import of your OpenCode TUI keybinds.
    • Model selection that matches the TUI: chat, schedules, agents, the goal auditor and the walkthrough all share the TUI's model preferences, favorites and recents.
    • /ocm-move into worktrees: moving a local session no longer fails when the Manager checkout is dirty, behind or on another branch. The session moves into an OpenCode worktree instead.

    What's Changed

    Features

    • feat(ui): dock repo and session tools in a desktop side panel (#400): the open tool lives in the URL (?panel=), so it survives reloads and can be linked.
    • feat(walkthrough): session change walkthroughs (#386, #402, #407, #412): a walkthrough opens on an overview page, then pages through stops. Large diffs are planned once and explained in parallel, four stops at a time, with stops appearing as they finish. Explanations are reused when the code they cover hasn't changed. Choose the source (session, uncommitted, staged, unstaged, branch or pull request), and set a walkthrough model in Settings. The ocm tool's open_walkthrough action lets an agent open it.
    • feat(multi-run): fusion and a runs sheet (#386, #391): fuse two to five completed runs with a chosen model and optional instructions, optionally in an isolated workspace. One right-side runs sheet replaces the multi-run and fusion dialogs. A fusion no longer asks permission once for each source workspace.
    • feat(schedules): workspace modes and worktree management (#385): each schedule runs in a fresh worktree per run, kept worktrees, one shared worktree, or the repository checkout itself. Its leftover worktrees can be inspected and cleaned up.
    • feat(ui): app-wide keyboard shortcuts with TUI keybind import (#401): new actions include clear prompt, toggle terminal, toggle source control and cycle favorite models (Ctrl+R). Focus returns to where it was when an overlay closes.
    • feat(sessions): TUI-style session picker (#403): Pinned, Today and Older sections, type-to-filter search, a This project / All scope, and inline pin and delete. Sessions from the project's worktrees and schedule runs are included (#409, #410).
    • feat(composer): unified prompt suggestions (#394): one fuzzy-ranked list for commands, agents, skills and files, with @skill mentions and a mobile insert keybar.
    • feat(chat): group exploration tool calls (#392): consecutive reads, searches and fetches collapse into one summary line, as in the TUI. Toggle it in Settings.
    • feat(ocm): move sessions into OpenCode worktrees (#408): /ocm-move replaces the Manager checkout only when it is on the branch, clean and not ahead. Otherwise it reuses a clean worktree on that branch or creates one. A server branch with commits the local branch lacks is never rewound.
    • feat(tui): session goals, multi-runs and server switching in the ocm TUI (#395, #396): /ocm-goal, /ocm-multirun and switching servers from inside the TUI.
    • feat(sidebar): match repo names and debounce session search

    Fixes

    • fix(models): model pickers no longer stay empty (#413): the model list reloads when the event stream reconnects. Model and provider changes now reach every open tab, including the model pickers in Settings.
    • fix(commands): the slash menu no longer gets stuck on built-in commands (#406): command, agent and skill lists reload on reconnect. Changes to them reach every open tab.
  4. v0.21.0OpenCode Manager v0.21.02026-10-05 · 2026-10-05 19:16 UTC
    查看更新说明

    Highlights

    • One-line install — curl -fsSL https://opencodemanager.app/install | sh sets up and starts OpenCode Manager with Docker. No clone and no .env required.
    • Integrated terminal and project actions — run shells, dev servers and watchers from the WebUI, including on mobile.
    • Session automation — per-session auto-accept, session goals that keep working until an objective is met, and multi-run across up to five models.
    • Expanded source control — worktrees from existing branches, merge or cherry-pick integration, stashes, conflict continue/abort, AI commit messages and git identities.
    • Docs moved to opencodemanager.app/docs.

    What's Changed

    Features

    • feat(docker): one-line installer and release Compose file (#384) — scripts/install.sh checks for Docker and Compose v2, installs into ~/opencode-manager (override with OCM_DIR), and asks before sharing anything from the host: importing your OpenCode config and state, mounting a repos folder, and phone/LAN sign-in. Re-running it updates to the latest release. The new docker-compose.release.yml runs the published image under the Compose project name ocm; a checkout's docker-compose.yml keeps building from source. The installer refuses to install over a source checkout or next to a running install, so it never takes over existing data.
    • feat(docker): generate AUTH_SECRET automatically — When AUTH_SECRET is unset, the container generates one on first start and stores it in the data volume at /app/data/.auth-secret (mode 0600), so it survives restarts and updates. An AUTH_SECRET you already set keeps taking priority.
    • feat(terminal): integrated terminal (#381) — Open terminals for a repository or session directory from the sidebar or the More drawer, with tabs, confirmation before closing a running shell, and exit codes. Terminals are OpenCode PTYs, so they reattach and replay output after a browser reload. A mobile key bar adds Esc, Tab, Ctrl, arrows and | ~ /. Terminals receive the repository's GitHub token, so gh works without extra setup.
    • feat(project-actions): run and stop project commands (#381) — Define dev servers, build watchers and test runners per repository, either as personal actions or in a committed .ocm/project.json, and run them from the header menu. URL templates support {worktree} and {branch}, and local dev URLs open in the Preview panel.
    • feat(ui): preview port menu and terminal auto-start — The Preview panel gains a port menu, and opening the terminal starts a shell when nothing is running in that directory.
    • feat(sessions): permission modes (#379) — Choose ask or auto per session, with a default for new sessions. Auto answers each permission request from the backend. Child sessions inherit their root's mode, forks copy it, and scheduled runs and agent-created sessions always ask.
    • feat(sessions): session goals (#379) — Arm a goal in the composer and the session keeps going until an auditor model reports it done or blocked, within continuation and token limits. Goals can be paused, resumed or cancelled, recover after a restart, and send outcome notifications.
    • feat(sessions): multi-run (#379) — Run one prompt on up to five models in parallel from the repo page, optionally each in its own OpenCode workspace, and track each run's status, then open or discard it.
    • feat(ocm): session management for the assistant (#379) — The ocm tool can list, create, follow up on, read replies from and fork sessions, with a matching assistant skill.
    • feat(ocm): let the assistant clone repositories (#382) — The assistant can add a repository from an HTTPS or SSH URL, with an optional branch and directory name. This reuses the Add Repository flow, so deduplication, SSH setup and rollback behave the same.
    • feat(git): worktrees, integrate and branch management (#380) — Create worktrees from a new branch or an existing
  5. v0.20.0OpenCode Manager v0.20.02026-10-03 · 2026-10-03 03:09 UTC
    查看更新说明

    What's Changed

    Features

    • feat(themes): apply OpenCode color themes app-wide with a settings picker (#364) — Vendors the 36 OpenCode theme palettes into the shared package (synced via pnpm themes:sync), adds a colorTheme preference, and applies the theme across messages, repos, sessions, settings, agent colors, git status, and diff viewers through a ThemeProvider. Adds a theme picker to General settings; model quick-select follows the active theme (fixes #355).
    • feat(themes): drive code block syntax highlighting from active theme — Code blocks now use the active theme's syntax colors.
    • feat(files): fullscreen preview, relative markdown links, and preinstalled Chromium (#369) — Desktop file preview gains a fullscreen toggle with a minimal close control. Relative and absolute markdown links resolve against the previewed file and open in the file browser, while external links open in a new tab. Playwright and Chromium are preinstalled in the Manager image so agents can run browser automation without a project-local install.
    • feat(opencode-config): redact secrets and add MCP listing to the internal config API (#366)
    • feat(schedules): attach MCP servers to scheduled runs
    • feat(schedules): add unread run report notifications and run search
    • feat(schedules): open repo session with run context for finished worktree runs
    • feat(opencode): surface server startup and recovery failures in-app
    • feat(commands): align built-in slash commands with OpenCode v2 — Replaces the built-in command list with one typed registry. Removes the broken themes/share/unshare/editor entries, and server and custom commands now win on a name clash. Adds /copy, /btw, /rename, /fork (message picker), /timeline, /model, /agent, /variants, /mcp, /skills, /settings, and /connect. /model works while a response is running, and attachments are kept when a built-in command is submitted.
    • feat(frontend): default sidebar sections open and theme toasts — Sidebar sections are tracked independently and open by default; toasts use app color tokens and the selected theme mode.

    Fixes

    • fix: stabilize scheduled runs and background task tracking (#365) — Routes directory-less session events to backend listeners so scheduled runs finish and failure push notifications fire. Background shell status is resolved from the transcript when OpenCode no longer lists the shell, and a kill is no longer reported as completed. Child-session reconciliation is tightened, finished background tasks are hidden, and long dialog titles are clipped.
    • fix(files): resolve workspace paths and add sandboxed HTML preview (#367) — Accepts workspace-absolute paths, serves raw content under a CSP sandbox, previews HTML in a sandboxed iframe with a raw toggle, and fixes file-click path resolution and initial directory navigation.
    • fix(files): skip broken symlinks during directory scans
    • fix(navigation): show Assistant sessions in the sidebar and repo switcher (#368)
    • fix(opencode-config): reject redacted placeholder in raw-text config writes
    • fix(opencode): harden supervised server startup failure diagnostics
    • fix(commands): run multi-line and Enter commands, restore focus, refresh forks — Multi-line commands run instead of being sent as text, a complete command name runs on Enter, prompt focus is restored when a session opens or a dialog closes, and forked sessions appear in the sidebar immediately.
    • fix(schedules): run reports and history — Report links open in place, schedule notifications route to the run report, older run links resolve, session lookups are indexed, local report links are intercepted while repo data loads, and cached reports stay visible after polling errors.
    • fix(schedules): use real row buttons and correct run timestamps — Rows are accessible buttons, the active run stays resolvable when filtered out, and startedAt is shown consistently.
    • **fix(sched

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Quick Start

    Requires Docker with Compose v2.

    curl -fsSL https://opencodemanager.app/install | sh
    

    The installer starts OpenCode Manager on http://localhost:5003 and asks before sharing anything from your machine. Re-run it to update. On first launch you create an admin account.

    Requirements, Compose and source installs, and every feature are covered at opencodemanager.app:

    Development

    This repository is a pnpm workspace: backend/ (Bun + Hono), frontend/ (React + Vite), shared/ (schemas and types) and ocm-cli/ (the ocm CLI).

    pnpm install
    pnpm dev
    pnpm lint
    pnpm typecheck
    pnpm test
    

    See the Development Guide for setup, scripts, database notes and testing.

    License

    MIT