MCPInstall

cyrus-setup

Set up Cyrus end-to-end — install prerequisites, configure authentication, create integrations (Linear, GitHub, Slack), add repositories, and launch. Run this once to get Cyrus running as a background agent.

Installs
1.2K
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/cyrusagents/cyrus --skill cyrus-setup
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads cyrus-setup automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Cyrus Setup

One-command setup for self-hosted Cyrus. This orchestrator walks you through everything needed to run Claude Code as a background agent from Linear, Slack, and GitHub.

CRITICAL Rules

Never Read or Write ~/.cyrus/.env Directly

FORBIDDEN: Do NOT use Read, Edit, or Write tools on ~/.cyrus/.env or any file inside ~/.cyrus/. This file contains secrets (API keys, tokens, signing secrets). All interaction with this file MUST go through Bash commands (grep, printf >> ..., etc.) which the user can see and approve. Never read its contents into the conversation context.

Browser Automation

The goal of browser automation in this skill is to reduce sign-in and setup fatigue — the agent navigates web UIs, fills forms, and scrapes credentials so the user doesn't have to do it all manually.

Three modes, in order of preference:

  1. claude-in-chrome (preferred when available) — if the user is running Claude Code and has the claude-in-chrome MCP extension connected, use it. This has the huge advantage of using the user's existing Chrome with all their signed-in sessions (Linear, Slack, GitHub). Check availability by seeing if mcp__claude-in-chrome__* tools exist.
  2. agent-browser CLI — a standalone Playwright-based binary invoked via Bash. Requires launching a fresh Chrome profile with remote debugging enabled (the user will need to sign in to services in that profile). Check with which agent-browser.
  3. Manual guided flow — the user follows the agent's step-by-step instructions and does the clicks themselves. Always available as Path B in each sub-skill.

Determining which mode to use:

  1. First, check if claude-in-chrome MCP tools are available in the current session. If yes, use those — no setup needed.
  2. If not, check which agent-browser. If installed, launch a fresh Chrome profile (see below).
  3. If neither is available, ask the user: install agent-browser, or follow manual instructions?

agent-browser setup — fresh Chrome profile:

agent-browser needs a Chrome instance with remote debugging enabled. Launch one with an isolated profile:

# Find an open port
for port in $(seq 9222 9322); do
  if ! lsof -i :"$port" > /dev/null 2>&1; then
    echo "Open port found: $port"
    break
  fi
done
# Create a fresh profile directory
mkdir -p ~/.cyrus/chrome-profile
# Launch Chrome with remote debugging (runs in background)
# macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
  --remote-debugging-port=<port> \
  --user-data-dir="$HOME/.cyrus/chrome-profile" &

# Linux:
google-chrome --remote-debugging-port=<port> \
  --user-data-dir="$HOME/.cyrus/chrome-profile" &
# Connect agent-browser to it
agent-browser connect <port>

After connecting, commands work normally:

agent-browser navigate "https://example.com"
agent-browser click "button:text('Submit')"
agent-browser fill "#input-id" "value"
agent-browser screenshot
agent-browser eval "document.title"

Important: The user will need to sign in to Linear, Slack, and GitHub in this fresh Chrome profile before the agent can automate app creation. The agent should navigate to each service and pause for the user to sign in before proceeding with automation.

Cleanup: After setup is complete, close the Chrome instance:

lsof -ti :<port> | xargs kill 2>/dev/null

How This Works

This skill runs sub-skills in order, skipping any that are already complete. You can re-run /cyrus-setup at any time to add integrations or fix configuration.

Loading Sub-Skills

Each step references a sub-skill file. To execute a sub-skill, read the SKILL.md file using the Read tool and follow its instructions. The sub-skill files are sibling directories to this skill:

StepSub-skillFile to read
1setup-prerequisitescyrus-setup-prerequisites/SKILL.md (relative to skills directory)
2setup-claude-authcyrus-setup-claude-auth/SKILL.md
3setup-endpointcyrus-setup-endpoint/SKILL.md
4setup-linearcyrus-setup-linear/SKILL.md
5setup-githubcyrus-setup-github/SKILL.md
5bsetup-gitlabcyrus-setup-gitlab/SKILL.md
6setup-slackcyrus-setup-slack/SKILL.md
7setup-repositorycyrus-setup-repository/SKILL.md
8setup-launchcyrus-setup-launch/SKILL.md

To find the files, look for them relative to this file's directory (go up one level, then into the sub-skill directory). For example, if this file is at ~/.claude/skills/cyrus-setup/SKILL.md, the sub-skills are at ~/.claude/skills/cyrus-setup-prerequisites/SKILL.md, etc.

If a sub-skill file is not found, use Glob to search for it: **/cyrus-setup-prerequisites/SKILL.md


Step 0: Identity & Surface Selection

Before anything else, collect preferences from the user. Use the AskUserQuestion tool if available — ask questions interactively rather than printing them as a text block. You may bundle related questions into a single ask, or ask them one at a time.

Question 1: Name & Description

Ask the user (defaults in parentheses):

  • What would you like to name your agent? — This name appears in Linear, Slack, and GitHub integrations. (default: Cyrus)
  • Give your agent a short description — one sentence, shown in integration app listings. (default: AI coding agent for automated development)

Store as AGENT_NAME and AGENT_DESCRIPTION — used when creating Linear, Slack, and GitHub apps.

Question 2: Which surfaces?

Ask the user to select one or more:

  • Linear — issue tracking, recommended for most users
  • GitHub — PR comments and issues
  • GitLab — MR comments and issues
  • Slack — chat messages

At least one is required. Store the selection — it determines which integration sub-skills run (Steps 4-6).

Question 3: Package manager?

Ask: npm, pnpm, bun, or yarn?

Store the answer — used by the prerequisites skill.


Step 1: Prerequisites

Read the cyrus-setup-prerequisites/SKILL.md sub-skill and follow its instructions.

Pass the user's package manager preference from Step 0.


Step 2: Claude Auth

Read the cyrus-setup-claude-auth/SKILL.md sub-skill and follow its instructions.


Step 3: Webhook Endpoint

Read the cyrus-setup-endpoint/SKILL.md sub-skill and follow its instructions.


Step 4: Linear (if selected)

Only if the user selected Linear in Step 0.

Read the cyrus-setup-linear/SKILL.md sub-skill and follow its instructions.


Step 5: GitHub (if selected)

Only if the user selected GitHub in Step 0.

Read the cyrus-setup-github/SKILL.md sub-skill and follow its instructions.


Step 5b: GitLab (if selected)

Only if the user selected GitLab in Step 0.

Read the cyrus-setup-gitlab/SKILL.md sub-skill and follow its instructions.


Step 6: Slack (if selected)

Only if the user selected Slack in Step 0.

Read the cyrus-setup-slack/SKILL.md sub-skill and follow its instructions. All paths (A-1, A-2, and B) must use the manifest-based creation flow — never create the Slack app "from scratch" with manual scope/event configuration.


Step 7: Add Repositories

Read the cyrus-setup-repository/SKILL.md sub-skill and follow its instructions.


Step 8: Launch

Read the cyrus-setup-launch/SKILL.md sub-skill and follow its instructions.


Design Principles

  1. Skip-if-done — Every sub-skill checks existing state first. Re-running /setup is safe.
  2. Secrets never enter chat — Credentials are either scraped via agent-browser or written via clipboard-to-env shell commands the user runs in their terminal.
  3. Agent writes non-secret config — Values like CYRUS_SERVER_PORT and LINEAR_DIRECT_WEBHOOKS are written directly by the agent.
  4. Browser automation when available — Uses agent-browser for Linear/Slack app creation; falls back to guided manual steps if not installed.
  5. Package manager aware — The user's choice is used consistently throughout.

FAQ

What does the cyrus-setup skill do?

Set up Cyrus end-to-end — install prerequisites, configure authentication, create integrations (Linear, GitHub, Slack), add repositories, and launch. Run this once to get Cyrus running as a background agent.

How do I install cyrus-setup?

Run npx skills add https://github.com/cyrusagents/cyrus --skill cyrus-setup in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/cyrus-setup/ (personal) or .claude/skills/cyrus-setup/ (project).

Which AI agents can use cyrus-setup?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is cyrus-setup safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains cyrus-setup?

It is published by cyrusagents in cyrusagents/cyrus. It has 1,234 recorded installs.

More from cyrusagents/cyrus

View all →

cyrus-setup-linear

cyrusagents/cyrus

Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.

cyrus-setup-claude-auth

cyrusagents/cyrus

Configure Claude Code authentication for Cyrus — API key, OAuth token, or third-party provider.

Backend & APIs1.1K installs

cyrus-setup-github

cyrusagents/cyrus

Configure GitHub for Cyrus — gh CLI login and git config for PRs, with optional webhook setup to enable @mention responses in PR comments, automated rebases and merges, and auto-fixing based on CI failures (coming soon).

cyrus-setup-prerequisites

cyrusagents/cyrus

Check and install prerequisites for Cyrus — Node.js, jq, gh CLI, and the cyrus-ai npm package.

Backend & APIs1K installs

cyrus-setup-endpoint

cyrusagents/cyrus

Configure the public webhook endpoint for Cyrus — ngrok, Cloudflare Tunnel, or custom URL.

Backend & APIs1K installs

cyrus-setup-repository

cyrusagents/cyrus

Add one or more Git repositories to Cyrus configuration so it can process issues from those repos.

Popular productivity & automation skills

View category →

agent-browser

vercel-labs/agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.

OfficialProductivity & Automation1.3M installs

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。

lark-shared

open.feishu.cn

Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.

lark-im

open.feishu.cn

飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。