Extensions
Syrus plugins
Browse the plugin gems bundled with Syrus. Each plugin documents the extension points it owns, when to enable it, and how it fits into a Syrus installation.
Admin MySQL
observabilityAdmin MySQL exposes the live state of a Syrus instance's MySQL server: process list, connection pressure, slow-log configuration, statement digests, and targeted query termination. It is intentionally operator-facing and disabled by default because it surfaces database internals and control actions. Use this plugin when a deployment runs against MySQL and needs real-time production diagnosis without shelling into the database pod. SQLite-backed installations do not need it.
Agent Activity
observabilityDocumentation is not available yet.
Agent Insights
observabilityDocumentation is not available yet.
Agent Memory
agent_capabilityDocumentation is not available yet.
Antigravity Agent
agent_providerAntigravity Agent connects Syrus workflows and chats to Google's `agy` CLI. It provides the provider adapter used for implementation, review, repair, coding handoff, and interactive chat sessions, while feeding provider availability and failure classification back into Syrus' admission and retry systems. Enable this plugin when a Syrus instance should offer Antigravity-backed automation. It can run alongside the Claude and Codex plugins so jobs and chats choose the appropriate provider per workflow or conversation.
Alertmanager Investigations
observabilityDocumentation is not available yet.
Android
platform_delivery`android` is a bundled Syrus plugin gem for Android project awareness. It layers on top of the generic `java` and `kotlin` plugins instead of replacing them: Java/Kotlin own JDK, Gradle, Maven, wrapper, and Kotlin/JVM conventions; Android owns Android Gradle Plugin, Android SDK, emulator/device, mobile runtime, and APK/AAB artifact behavior.
Browser (Playwright)
agent_capabilityBrowser gives workflow agents a constrained Playwright browser for visual review and preview validation. Agents can navigate, click, fill forms, capture screenshots, and submit visual artifacts while Syrus restricts navigation to the step's own loopback preview. The plugin is designed for UI work where code review alone is not enough. It keeps browser automation auditable and local to the workflow so agents can inspect visible behavior without gaining arbitrary network access.
Build Cache
toolingDocumentation is not available yet.
Claude Agent
agent_providerClaude Agent connects Syrus workflows and chats to the Claude CLI/provider adapter. It handles agent invocation, transcript capture, provider availability evidence, and the same workflow-side MCP tool surface used by implementation, review, repair, and chat turns. Enable this plugin when a Syrus instance should offer Claude-backed automation. It can run alongside other agent-provider plugins so jobs and chats choose the appropriate provider per workflow.
Codex Agent
agent_providerCodex Agent connects Syrus workflows and chats to Codex. It provides the provider adapter used for implementation, review, repair, coding handoff, and interactive chat sessions, while feeding provider availability and failure classification back into Syrus' admission and retry systems. Enable this plugin when a Syrus instance should offer Codex-backed automation. It is independent from the Claude plugin, so operators can run either provider or both.
Review Notes
agent_capabilityReview Notes is a bundled Syrus plugin for agent-authored review notes on changed diff ranges. After implementation-style workflows, it can run a review pass that flags code ranges worth operator attention and surfaces concise notes in the Job review tab. Notes are stored as plugin-owned records scoped to the Job, Workflow, Run, and DiffReviewVersion that produced them. Open notes count as unresolved PR-level review-note debt; acknowledged notes, discussed notes, and covered ranges with operator diff comments count as acknowledged. Dismissed notes are reported separately in the rollup. Changed lines without a note do not create debt.
Credential Store
agent_capabilityDocumentation is not available yet.
Design Docs
collaborationFirst-party Syrus plugin for collaborative Markdown design documents. Design Docs are internally authored Markdown documents with auditable versions, inline comments, owner-reviewed suggestions, repository associations, and chat workspace visibility. They complement the host app's attachment-oriented `Document` model rather than replacing it.
Discord
platform_deliveryDiscord adds a platform-delivery channel for Syrus chat. It links Discord users to Syrus accounts, listens for direct messages through the Gateway, and delivers chat replies back to Discord so operators can interact with Syrus away from the web UI. The plugin is disabled by default because it requires Discord credentials and a running Gateway connection. Once configured, it behaves as another chat surface rather than a separate automation engine.
django
language`django` is a Syrus plugin gem that bundles Django-framework-specific intelligence into a single `PluginRegistry.register` call. It lives at `plugins/django/` inside the Syrus repository and `depends_on: [ "python" ]`: enabling `django` in Admin → Plugins cascades to enable `python`, and disabling `python` while `django` is enabled surfaces a confirm-and-cascade-disable prompt. See `config/syrus_docs/plugins.md` for the general `depends_on` mechanism. Python-generic capabilities that aren't specific to Django — uv/poetry/pip prepare detection, pytest grader failure detail, and the venv/uv activation prompt reminder — live in the separate `python` plugin (`plugins/python/`) instead, so non-Django Python projects (Flask, FastAPI, plain scripts) can use them too.
Git History
observabilityGit History adds a repository tab that traces commits back to the Syrus work that produced them. It connects Git commits to jobs, epics, chats, issues, cron tasks, and landing activity so operators can answer why a commit exists and which automation path created it. This plugin is useful for auditability and debugging confusing branch history. It reads local bare clones maintained by Syrus and presents the history in the app without changing repository behavior.
Git Mirror
toolingDocumentation is not available yet.
GitHub Host
connectivityDocumentation is not available yet.
GitHub Source
input_sourceGitHub Source is Syrus' built-in GitHub integration. It polls issues and pull requests, opens and updates PRs, reads check state, performs landing operations, and supplies the source-control primitives other workflows rely on. For most Syrus installations this is the default path for issue-to-PR automation and stays enabled. It can be disabled once nothing uses it; the disable guard blocks the attempt while any input source or active repository still does. Future source plugins can follow the same extension points, but GitHub remains the default path for issue-to-PR automation.
Search
collaborationDocumentation is not available yet.
go
language`go` is a Syrus plugin gem that bundles Go-generic intelligence into a single `PluginRegistry.register` call. It lives at `plugins/go/` inside the Syrus repository and applies to any Go project — there's no framework-specific split here the way `django` splits out of `python`, since net/http, Gin, Echo, etc. don't share a single web-serving convention.
ios
language`ios` is a Syrus plugin gem for iOS and Swift validation that must run on native macOS workers. It lives at `plugins/ios/` and contributes typed grader declarations rather than scheduler special cases.
java
language`java` is a Syrus plugin gem that bundles generic Java/JVM intelligence into a single plugin registration. It lives at `plugins/java/` inside the Syrus repository and applies to Java services, CLIs, libraries, and mixed-language repositories with JVM components.
javascript
language`javascript` is a Syrus plugin gem that bundles Node/JS (and TS) prepare detection and dev-server preview hosting into a single `PluginRegistry.register` call. It lives at `plugins/javascript/` inside the Syrus repository. Named for language parity with `ruby`/`python` rather than `node`, since npm/yarn/pnpm/bun + `package.json` detection is identical for JS and TS repos.
Kubernetes Cluster Viewer
toolingK8s Cluster Viewer lets admins register external Kubernetes/k3s clusters, parsed from a pasted kubeconfig, with encrypted credential storage, and browse them read-only from a tabbed sidebar UI. Read-only cluster inspection is also available to the Syrus agent as MCP tools, gated per-cluster via `agentic_access_enabled`. A short, explicit allowlist of write/mutating MCP tools (restart a deployment rollout, scale a deployment, delete a pod, cordon/uncordon a node) is additionally gated per-cluster via a separate `allow_writes` opt-in.
kotlin
language`kotlin` is a Syrus plugin gem that layers Kotlin/JVM language awareness on top of the generic Java plugin. It lives at `plugins/kotlin/` inside the Syrus repository and applies to Kotlin/JVM services, CLIs, libraries, and mixed-language repositories with Kotlin components.
Linear Source
input_sourceLinear Source connects Syrus to Linear teams and issues. It lets operators ingest Linear work into Syrus jobs and epics while preserving Linear as the planning system of record. The plugin is disabled by default because it requires Linear credentials and team selection. It complements GitHub Source: Linear can provide the work intake while GitHub remains the code and PR backend.
Metrics Dashboard
observabilityDocumentation is not available yet.
Mockups
agent_capabilityPreview Tools gives planning-mode chat agents a safe scratch area for building lightweight HTML, CSS, and JavaScript previews. The tools are scoped away from repository checkouts, so agents can mock up ideas and show interactive artifacts without modifying project code. Use this plugin when chat should support exploratory UI sketches before a real job is filed. It is intentionally separate from repository preview providers, which run actual application code from workflow workspaces.
Muse Agent
agent_providerMuse Agent connects Syrus workflow and chat execution to Muse Code. Muse is intentionally shipped as an installed but disabled plugin until an operator enables it for an instance. Turn it on from **Admin -> Plugins -> Muse Agent** after the worker/backend image has the `muse` CLI on `PATH` and the pilot users have saved Muse API keys. Turning the plugin off removes Muse from agent/chat provider selection and disables its credential probe for new requests without deleting saved encrypted keys.
MySQL DB Browser
toolingMySQL DB Browser lets admins register external MySQL connections, inspect schemas, browse table contents, and run controlled queries from the Syrus admin UI. Credentials are stored encrypted and connections are explicit per database target. This plugin is separate from Admin MySQL: Admin MySQL inspects Syrus' own runtime database, while MySQL DB Browser is for operator-managed external databases that Syrus may need to inspect.
Operator Briefing
observabilityOperator Briefing is the per-repository briefing surface for operators. The plugin is off by default. When enabled, it adds a top-level `/briefing` sidebar page, records queryable review findings, notable workflow-change facts, and early "blocked on you" signals from open design-doc discussion threads, then synthesizes stored `narrative`, `chart`, `image`, `artifact`, and `link_card` blocks into per-repository briefing revisions. Image and artifact blocks render existing typed artifacts captured by the summarized Workflow; the briefing does not generate fresh artifacts for the main page.
Plugin Runtime
toolingDocumentation is not available yet.
python
language`python` is a Syrus plugin gem that bundles Python-generic intelligence into a single `PluginRegistry.register` call. It lives at `plugins/python/` inside the Syrus repository and applies to any Python project (Flask, FastAPI, plain WSGI, scripts) — framework-specific tooling (e.g. Django) belongs in its own plugin. See [`docs/syrus_docs/python.md`](docs/syrus_docs/python.md) for the full operator-facing writeup of what this plugin provides (also the copy surfaced by the admin Plugins detail page and `search_syrus_docs`). This README stays focused on developing the plugin itself.
syrus_rails
language`syrus_rails` is a Syrus plugin gem that bundles Rails-*framework*-specific capabilities into a single `PluginRegistry.register` call (registered manifest name `syrus-rails`). It lives at `plugins/rails/` inside the Syrus repository and is the primary integration point for Ruby on Rails repositories. Ruby-generic capabilities that aren't specific to Rails — RSpec grader failure detail, RSpec output parsing, SimpleCov coverage analysis, and Gemfile prepare detection — live in the separate `ruby` plugin (`plugins/ruby/`) instead, so non-Rails Ruby projects (gems, Sinatra apps, plain scripts) can use them too. `syrus_rails` declares `depends_on: [ "ruby" ]`: enabling `syrus_rails` in Admin → Plugins cascades to enable `ruby`, and disabling `ruby` while `syrus_rails` is enabled surfaces a confirm-and-cascade-disable prompt. See `config/syrus_docs/plugins.md` for the general `depends_on` mechanism.
ruby
language`ruby` is a Syrus plugin gem that bundles Ruby-generic capabilities — not specific to Rails — into a single `PluginRegistry.register` call. It lives at `plugins/ruby/` inside the Syrus repository and applies to any Ruby project: gems, Sinatra apps, plain Ruby scripts, and Rails apps alike.
Runtime Terminal
agent_capabilityDocumentation is not available yet.
Scheduled Tasks
input_sourceDocumentation is not available yet.
Spending Insights
observabilitySpending Insights adds a sidebar page for understanding agent spend across Syrus. It rolls costs up by epic, repository, user, provider, and workflow trigger so operators can see where automation budget is going. Use it on instances where cost visibility matters. It reads existing accounting data and does not change scheduling, grading, or job behavior.
Syrus Dev
toolingSyrus Dev contains tooling that is useful when developing Syrus itself: performance diagnostics, operational logs, admin observability pages, and workflow MCP helpers that expose Syrus runtime data to Syrus-development jobs. Keep this plugin disabled on ordinary installations unless operators explicitly want Syrus-internal diagnostics. It is not a general admin plugin; it exists to make Syrus better at building and debugging Syrus.
Tailscale
connectivityTailscale registers a Syrus instance as a Tailscale node so operators can reach it over a private tailnet. It manages lifecycle callbacks, status reporting, and the admin page needed to inspect connectivity. Enable it when an installation should be reachable without exposing Syrus directly on the public internet. It is disabled by default because it requires a Tailscale auth key and network policy decisions outside Syrus.
Team Directory
collaborationTeam Directory is the bundled, read-only people directory for a multi-user Syrus instance. It adds a Team sidebar entry at `/profiles` and profile pages at `/profiles/:id`, summarising each operator's recent jobs, epics, and active repositories from records Syrus already owns.
Terminal
toolingDocumentation is not available yet.
Test Insights
observabilityDocumentation is not available yet.
Theming Tools
agent_capabilityTheming Tools gives the Syrus Chat agent a complete custom-theme tool set. It can draft a candidate theme and open it against the real Style Guide, validate persisted palettes for WCAG AA contrast, install a theme, and list, update, or delete the calling user's custom themes. The underlying `Theme` model stays in core (same precedent as `WhiteboardSnapshot` for `whiteboard`) — this plugin owns the chat MCP tools and the broadcast wiring that opens the preview modal.
Throughput
observabilityDocumentation is not available yet.
Walkthrough Videos
agent_capabilityDocumentation is not available yet.
Whisper speech-to-text
toolingDocumentation is not available yet.
Whiteboard
agent_capabilityWhiteboard adds a shared Excalidraw canvas to chat workspaces and exposes drawing tools to chat agents. Operators and agents can sketch flows, annotate ideas, save snapshots, and revisit visual state as part of a planning session. Use it for design and architecture discussions where text is not enough. The plugin stores whiteboard state per chat and keeps the drawing surface separate from repository code.
Worker Timeline
observabilityWorker Timeline visualizes overlapping Syrus activity as a multi-lane timeline: one lane per durable worker process role (`worker_storage_key` + `queue_role`), with Job/Workflow spans over time. Hostname and pid remain available on each span for "where did this run" tooltips and restart markers. It's meant to answer "what was taking a long time" and "what was this blocked on before it could start" at a glance, across jobs, epics, and repositories.