소스 정보
- 저장소
- cyrusagents/cyrus
- 최근 소스 활동
- 2026년 4월 15일 20:33
- 감지된 SKILL.md 언어
- 영어
- 스타
- 768
- 포크
- 152
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/cyrusagents/cyrus --skill cyrus-setup-launch명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
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).
Prepare, verify, publish, and finish a coordinated Cyrus CLI release. Use when a user asks to release Cyrus, publish cyrus-ai, run a CLI release, or perform the /release workflow.
Create a Linear OAuth application and configure Cyrus to use it — supports agent-browser automation or guided manual setup.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | cyrus-setup-launch |
| description | Print a summary of the Cyrus setup and offer to start the agent. |
CRITICAL: Never use Read, Edit, or Write tools on ~/.cyrus/.env or any file inside ~/.cyrus/. Use only Bash commands (grep, printf >>, etc.) to interact with env files — secrets must never be read into the conversation context.
Prints a summary of the completed setup and offers to start Cyrus.
Read current state:
# Base URL
grep '^CYRUS_BASE_URL=' ~/.cyrus/.env 2>/dev/null | cut -d= -f2-
# Linear
grep -c '^LINEAR_CLIENT_ID=' ~/.cyrus/.env 2>/dev/null
# GitHub
gh auth status 2>&1 | head -1
# Slack
grep -c '^SLACK_BOT_TOKEN=' ~/.cyrus/.env 2>/dev/null
# Repositories
cat ~/.cyrus/config.json 2>/dev/null
# Claude auth
grep -c -E '^(ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN)=' ~/.cyrus/.env 2>/dev/null
Print a formatted summary:
┌─────────────────────────────────────┐
│ Cyrus Setup Complete │
├─────────────────────────────────────┤
│ │
│ Endpoint: https://your-url.com │
│ Claude: ✓ API key configured │
│ │
│ Surfaces: │
│ Linear: ✓ Workspace connected │
│ GitHub: ✓ CLI authenticated │
│ Slack: ✓ Bot configured │
│ │
│ Repositories: │
│ • yourorg/yourrepo │
│ • yourorg/another-repo │
│ │
└─────────────────────────────────────┘
Use ✓ for configured items and ✗ for skipped/unconfigured items.
Cyrus needs to run as a background process so it stays alive and restarts after reboots. Use the AskUserQuestion tool if available to ask:
How would you like to keep Cyrus running in the background?
- pm2 (recommended) — Node.js process manager. Simple to set up, auto-restarts on crash, log management built in. Best for most users.
- systemd (Linux only) — OS-level service manager. Starts on boot automatically, managed with
systemctl. Best for dedicated Linux servers.- Neither — just run
cyrusin the foreground for now (you can set up persistence later).
The agent should run all of these commands directly:
which pm2). If not, install it (npm install -g pm2).pm2 start cyrus --name cyruspm2 savepm2 startup — this prints a system-specific command. The agent should run that output command too (it typically requires sudo).After setup, inform the user of useful commands:
pm2 logs cyrus — view logspm2 restart cyrus — restartpm2 stop cyrus — stopThe agent should run all of these commands directly:
Resolve the actual values for the service file:
CYRUS_BIN=$(which cyrus)
CYRUS_USER=$(whoami)
Write the service file:
sudo tee /etc/systemd/system/cyrus.service > /dev/null << EOF
[Unit]
Description=Cyrus AI Agent
After=network.target
[Service]
Type=simple
User=$CYRUS_USER
EnvironmentFile=/home/$CYRUS_USER/.cyrus/.env
ExecStart=$CYRUS_BIN
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable cyrus
sudo systemctl start cyrus
After setup, inform the user of useful commands:
sudo systemctl status cyrus — check statussudo journalctl -u cyrus -f — view logssudo systemctl restart cyrus — restartRun directly:
cyrus
If the user configured ngrok in the endpoint step, the agent should start it:
ngrok start cyrus
If using pm2, also make ngrok persistent:
pm2 start "ngrok start cyrus" --name ngrok
pm2 save
If the user's ~/.cyrus/config.json has sandbox.enabled: true, check whether the egress proxy CA certificate is trusted in the system keychain.
Check if sandbox is enabled:
grep -o '"enabled":\s*true' ~/.cyrus/config.json 2>/dev/null | head -1
If sandbox is enabled, check trust status:
# macOS — check System keychain for the Cyrus CA
security find-certificate -c "Cyrus Egress Proxy CA" /Library/Keychains/System.keychain 2>&1
sandbox.systemWideCert: true in config.json to skip per-session cert env vars.sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.cyrus/certs/cyrus-egress-ca.pem
On Linux, check with test -f /usr/local/share/ca-certificates/cyrus-egress-ca.crt. If not present:
sudo cp ~/.cyrus/certs/cyrus-egress-ca.pem /usr/local/share/ca-certificates/cyrus-egress-ca.crt
sudo update-ca-certificates
After trusting system-wide, offer to set sandbox.systemWideCert: true in config.json. This skips per-session cert env vars (NODE_EXTRA_CA_CERTS, GIT_SSL_CAINFO, etc.) since the OS cert store handles trust for all tools.
If the user declines system-wide trust, Cyrus still works — it sets cert env vars per-session. But some tools (Bun, .NET, curl on macOS with SecureTransport) will only work with system-wide trust.
Once Cyrus starts, verify it's listening:
curl -s http://localhost:3456/status
Should return {"status":"idle"} or similar.
Then try assigning a Linear issue to Cyrus, or @mentioning it in Slack, to verify the full pipeline works!
✓ Cyrus is running and ready. Assign a Linear issue or @mention in Slack to test it out!