### Repository Setup Script Example Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SETUP_SCRIPTS.md An example of a bash script that can be placed in the repository root to perform initialization tasks when a new worktree is created for an issue. It demonstrates copying environment files, installing dependencies, and setting up databases. ```bash #!/bin/bash # cyrus-setup.sh - Repository initialization script # Copy environment files from a central location cp /path/to/shared/.env packages/app/.env # Install dependencies if needed # npm install # Set up test databases, copy config files, etc. echo "Repository setup complete for issue: $LINEAR_ISSUE_IDENTIFIER" ``` -------------------------------- ### Global Setup Script Configuration Example Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SETUP_SCRIPTS.md An example of how to configure a global setup script in the ~/.cyrus/config.json file. This script will run for all repositories when new worktrees are created. ```json { "repositories": [...], "global_setup_script": "/opt/cyrus/bin/global-setup.sh" } ``` -------------------------------- ### Start ngrok Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-launch/SKILL.md Command to start ngrok for Cyrus. ```bash ngrok start cyrus ``` -------------------------------- ### Install gh, npm, git, and jq on Linux/Ubuntu Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Installs necessary dependencies for Linux/Ubuntu using apt. ```bash apt install -y gh npm git jq # Verify jq --version # Should show version like jq-1.7 node --version # Should show v18 or higher ``` -------------------------------- ### Start Cyrus with a Custom Environment File Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Command to start Cyrus using a specified environment file. ```bash cyrus --env-file=/path/to/your/env ``` -------------------------------- ### Development Mode Setup Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Steps to set up and run Cyrus from source in development mode. ```bash cd /path/to/cyrus pnpm install cd apps/cli pnpm link --global # In a separate terminal pnpm dev # Then run cyrus normally cyrus ``` -------------------------------- ### Install GitHub App on Repositories and Capture Installation ID Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-github/SKILL.md Guides through installing the GitHub App on repositories and capturing the installation ID. It includes steps to generate a JWT for authentication, list installations, and save the installation ID to the .env file. ```bash # Re-read GITHUB_APP_ID from .env (shell vars don't persist between blocks) GITHUB_APP_ID=$(grep '^GITHUB_APP_ID=' ~/.cyrus/.env | cut -d= -f2-) # Generate a JWT to authenticate as the app GITHUB_APP_JWT=$(node -e " const crypto = require('crypto'); const fs = require('fs'); const key = fs.readFileSync(process.env.HOME + '/.cyrus/github-app.pem', 'utf8'); const now = Math.floor(Date.now()/1000); const header = Buffer.from(JSON.stringify({alg:'RS256',typ:'JWT'})).toString('base64url'); const payload = Buffer.from(JSON.stringify({iat:now-60,exp:now+600,iss:'$GITHUB_APP_ID'})).toString('base64url'); const sig = crypto.createSign('RSA-SHA256').update(header+'.'+payload).sign(key,'base64url'); console.log(header+'.'+payload+'.'+sig); ") # List installations — if multiple, show all and let user pick INSTALLATIONS=$(curl -s -H "Authorization: Bearer $GITHUB_APP_JWT" -H "Accept: application/vnd.github+json" https://api.github.com/app/installations) echo "$INSTALLATIONS" | jq '.[] | {id, account: .account.login}' ``` ```bash printf 'GITHUB_APP_INSTALLATION_ID=%s\n' "" >> ~/.cyrus/.env ``` ```bash grep -c '^GITHUB_APP_INSTALLATION_ID=.' ~/.cyrus/.env ``` -------------------------------- ### String Mode Source: https://github.com/cyrusagents/cyrus/blob/main/packages/gemini-runner/CLAUDE.md Example of starting the runner in string mode. ```typescript await runner.start("Analyze this codebase"); ``` -------------------------------- ### systemd: Enable and Start Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-launch/SKILL.md Commands to enable and start the Cyrus systemd service. ```bash sudo systemctl daemon-reload sudo systemctl enable cyrus sudo systemctl start cyrus ``` -------------------------------- ### Install agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Command to install agent-browser if it is not found. ```bash npm install -g agent-browser ``` -------------------------------- ### Repository Teardown Script Example (Breadcrumb File) Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SETUP_SCRIPTS.md An example demonstrating how to use a breadcrumb file to store cleanup information, such as dynamically allocated ports or project names, for teardown scripts. The setup script writes to a JSON file, and the teardown script reads from it. ```bash # cyrus-setup.sh port=$(shuf -i 49152-65535 -n 1) PROJECT="cyrus_${LINEAR_ISSUE_IDENTIFIER//-/_}" docker compose -p "$PROJECT" up -d printf '{"port": %d, "project": "%s"}\n' "$port" "$PROJECT" > .cyrus-cleanup.json ``` ```bash # cyrus-teardown.sh [ -f .cyrus-cleanup.json ] || exit 0 project=$(jq -r .project .cyrus-cleanup.json) docker compose -p "$project" down -v ``` -------------------------------- ### Start SSH Agent Source: https://github.com/cyrusagents/cyrus/blob/main/docs/GIT_GITLAB.md Starts the SSH agent in the background. ```bash eval "$(ssh-agent -s)" ``` -------------------------------- ### F1 Test Drive: Setup & Issue Creation Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/CLAUDE.md Initial steps for a test drive, including building, starting the server, and creating a test issue. ```bash # Build and start pnpm install && pnpm build export CYRUS_PORT=3600 node dist/server.js --port $CYRUS_PORT # Create test issue ./f1 issue create --title "Add multiply and divide methods to Calculator" --labels sonnet ``` -------------------------------- ### Enable and Start systemd Service Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Commands to enable and start the Cyrus systemd service. ```bash sudo systemctl enable cyrus sudo systemctl start cyrus ``` -------------------------------- ### Install jq and gh on macOS Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Installs necessary dependencies for macOS using Homebrew. ```bash brew install jq gh # Verify jq --version # Should show version like jq-1.7 node --version # Should show v18 or higher ``` -------------------------------- ### Install GitLab CLI on Linux (Debian/Ubuntu) Source: https://github.com/cyrusagents/cyrus/blob/main/docs/GIT_GITLAB.md Installs the GitLab CLI by adding its repository and using apt. ```bash # Add the GitLab CLI repository curl -s "https://gitlab.com/gitlab-org/cli/-/raw/main/scripts/install.sh" | sudo bash ``` -------------------------------- ### Gemini CLI Installation and Test Execution Source: https://github.com/cyrusagents/cyrus/blob/main/packages/gemini-runner/CLAUDE.md Instructions for setting up the Gemini CLI, exporting the API key, building the package, and running the integration tests. ```bash # Install Gemini CLI (one-time setup) npm install -g @google/gemini-cli@0.17.0 # Set API key export GEMINI_API_KEY='your-gemini-api-key' # Build the package first cd packages/gemini-runner pnpm build # Run comprehensive integration test (covers all features) bun test-scripts/test-gemini-runner.ts ``` -------------------------------- ### pm2: Start Cyrus Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-launch/SKILL.md Commands to start Cyrus using pm2, save the process list, and set up startup. ```bash # Check if pm2 is installed (`which pm2`). If not, install it (`npm install -g pm2`). # Start Cyrus: `pm2 start cyrus --name cyrus` # Save the process list: `pm2 save` # Run `pm2 startup` — this prints a system-specific command. The agent should run that output command too (it typically requires `sudo`). ``` -------------------------------- ### Install GitHub CLI on Linux Source: https://github.com/cyrusagents/cyrus/blob/main/docs/GIT_GITHUB.md Installs the GitHub CLI on Debian/Ubuntu-based systems. ```bash sudo apt install gh ``` -------------------------------- ### Install cyrus-ai Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Commands to install cyrus-ai using different package managers. ```bash # npm npm install -g cyrus-ai # pnpm pnpm install -g cyrus-ai # bun bun install -g cyrus-ai # yarn yarn global add cyrus-ai ``` -------------------------------- ### Install GitHub CLI on macOS Source: https://github.com/cyrusagents/cyrus/blob/main/docs/GIT_GITHUB.md Installs the GitHub CLI using Homebrew. ```bash brew install gh ``` -------------------------------- ### Install ngrok on Linux Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-endpoint/SKILL.md Provides command to download and install ngrok on Linux. ```bash curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok-v3-stable-linux-amd64.tgz | sudo tar xvz -C /usr/local/bin ``` -------------------------------- ### Verify cyrus-ai installation Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Command to verify the installation of cyrus-ai. ```bash cyrus --version ``` -------------------------------- ### Install GitLab CLI on macOS Source: https://github.com/cyrusagents/cyrus/blob/main/docs/GIT_GITLAB.md Installs the GitLab CLI using Homebrew. ```bash brew install glab ``` -------------------------------- ### Cyrus Environment File Configuration Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Example of a complete Cyrus environment file with server and Linear OAuth settings. ```bash # Server configuration LINEAR_DIRECT_WEBHOOKS=true CYRUS_BASE_URL=https://your-public-url.com CYRUS_SERVER_PORT=3456 # Linear OAuth LINEAR_CLIENT_ID=your_client_id LINEAR_CLIENT_SECRET=your_client_secret LINEAR_WEBHOOK_SECRET=your_webhook_secret ``` -------------------------------- ### Print Summary Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-launch/SKILL.md A formatted summary of the Cyrus setup, indicating configured and unconfigured items. ```text ┌─────────────────────────────────────┐ │ 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 │ │ │ └─────────────────────────────────────┘ ``` -------------------------------- ### Authorize with Linear Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Command to start the OAuth callback server and open the browser for Linear authorization. ```bash cyrus self-auth-linear ``` -------------------------------- ### agent-browser commands Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup/SKILL.md Examples of common agent-browser commands for navigating, interacting with web elements, and evaluating JavaScript. ```bash 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" ``` -------------------------------- ### Setup Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/2026-05-11-cypack-1190-auto-memory-directory.md Initializes a git repository and starts the Cyrus F1 server. ```bash $ mkdir /tmp/cypack-1190-test && cd /tmp/cypack-1190-test $ git init -q && touch README.md && git add . && git commit -m init -q $ CYRUS_PORT=3699 CYRUS_REPO_PATH=/tmp/cypack-1190-test bun run apps/f1/server.ts & ``` -------------------------------- ### Running Examples Source: https://github.com/cyrusagents/cyrus/blob/main/packages/gemini-runner/README.md Commands to navigate to the gemini-runner directory, build the project, and run a basic example. ```bash cd packages/gemini-runner pnpm build node examples/basic-usage.js # Or .ts with ts-node ``` -------------------------------- ### Quick Start Source: https://github.com/cyrusagents/cyrus/blob/main/packages/simple-agent-runner/README.md A basic example demonstrating how to use SimpleClaudeRunner to query an agent and receive a type-safe response. ```typescript import { SimpleClaudeRunner } from "cyrus-simple-agent-runner"; // Define valid responses as a const array for type safety const VALID_RESPONSES = ["yes", "no"] as const; type YesNoResponse = typeof VALID_RESPONSES[number]; // "yes" | "no" // Create runner const runner = new SimpleClaudeRunner({ validResponses: VALID_RESPONSES, cyrusHome: "/Users/me/.cyrus", maxTurns: 3, timeoutMs: 30000, // 30 seconds }); // Execute query const result = await runner.query( "Is TypeScript better than JavaScript for large projects?" ); console.log(result.response); // "yes" or "no" (type-safe!) console.log(result.durationMs); // Execution time console.log(result.costUSD); // Cost (if available) ``` -------------------------------- ### Run Cyrus using tmux Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Commands to start Cyrus within a tmux session. ```bash tmux new-session -s cyrus cyrus # Ctrl+B, D to detach # tmux attach -t cyrus to reattach ``` -------------------------------- ### Repository Teardown Script Example (Identifier-based Naming) Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SETUP_SCRIPTS.md An example of a bash script for cleaning up resources associated with an issue when it reaches a terminal state. This example uses the issue identifier to name and drop databases and stop Docker Compose services. ```bash #!/bin/bash # cyrus-teardown.sh slug="${LINEAR_ISSUE_IDENTIFIER//-/_}" dropdb --if-exists "db_${slug}" docker compose -p "cyrus_${slug}" down -v ``` -------------------------------- ### Install Missing Dependencies Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Commands to install missing dependencies (Node.js, jq, gh CLI) on macOS and Linux/Ubuntu. ```bash # macOS brew install node brew install jq brew install gh # Linux/Ubuntu curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt install -y nodejs sudo apt install -y jq See https://github.com/cli/cli/blob/trunk/docs/install_linux.md ``` -------------------------------- ### systemd Service File for Cyrus Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Example systemd service file for running Cyrus as a persistent process on Linux. ```ini [Unit] Description=Cyrus AI Agent After=network.target [Service] Type=simple User=your-user EnvironmentFile=/home/your-user/.cyrus/.env ExecStart=/usr/local/bin/cyrus Restart=always [Install] WantedBy=multi-user.target ``` -------------------------------- ### Project Keys Example Source: https://github.com/cyrusagents/cyrus/blob/main/docs/CONFIG_FILE.md Example of specifying `projectKeys` to route issues from specific Linear projects. ```json ["Mobile App", "Web Platform", "API Service"] ``` -------------------------------- ### Installation Source: https://github.com/cyrusagents/cyrus/blob/main/packages/simple-agent-runner/README.md Install the package using pnpm. ```bash pnpm add cyrus-simple-agent-runner ``` -------------------------------- ### Start F1 server Source: https://github.com/cyrusagents/cyrus/blob/main/skills/f1-test-drive/SKILL.md Command to start the F1 server with specified port and repository path. ```bash CYRUS_PORT=3600 CYRUS_REPO_PATH=/tmp/f1-test-drive- bun run apps/f1/server.ts & ``` -------------------------------- ### Start Agent Session Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/2026-01-13-multi-repo-orchestration.md Command to start an agent session for the specified issue. ```bash CYRUS_PORT=30111 ./f1 start-session --issue-id issue-2 ``` -------------------------------- ### Setup Command (Community) Source: https://github.com/cyrusagents/cyrus/blob/main/README.md Command to initiate the AI-guided setup for community deployments within an AI coding agent. ```bash /cyrus-setup ``` -------------------------------- ### Streaming Mode Source: https://github.com/cyrusagents/cyrus/blob/main/packages/gemini-runner/CLAUDE.md Example of starting the runner in streaming mode and adding messages. ```typescript await runner.startStreaming("Initial task"); runner.addStreamMessage("Additional context"); runner.addStreamMessage("More details"); runner.completeStream(); // Closes stdin to trigger processing ``` -------------------------------- ### Step 2: Start the F1 Server Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/CLAUDE.md Command to start the F1 server, pointing to the test repository. ```bash # Start server pointing to the test repo CYRUS_PORT=3458 CYRUS_REPO_PATH=/tmp/rate-limiter-test bun run server.ts ``` -------------------------------- ### Start F1 Server Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/CLAUDE.md Commands to start the F1 server with default or custom settings. ```bash # Start with default settings bun run server.ts # Or use pnpm scripts pnpm run server # Custom configuration CYRUS_PORT=3600 CYRUS_REPO_PATH=/path/to/repo bun run server.ts # Development mode with auto-reload pnpm run server:dev ``` -------------------------------- ### Check for cyrus installation Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Command to check if cyrus is already installed. ```bash which cyrus ``` -------------------------------- ### Add a Repository Source: https://github.com/cyrusagents/cyrus/blob/main/docs/SELF_HOSTING.md Command to clone a repository and configure it with Linear workspace credentials. ```bash cyrus self-add-repo https://github.com/yourorg/yourrepo.git ``` -------------------------------- ### Phase 1: Setup Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/2026-04-13-cypack-1066-egress-sandbox-branch-mcp-fixes.md Initializes a test repository for the test drive. ```bash $ cd apps/f1 $ bun run dist/src/cli.js init-test-repo --path /tmp/f1-test-drive-20260413171756 ✓ Test repository created successfully! ``` -------------------------------- ### Example Full Configuration Source: https://github.com/cyrusagents/cyrus/blob/main/docs/CONFIG_FILE.md A comprehensive example of a Cyrus configuration file, including global prompt defaults and repository-specific settings. ```json { "promptDefaults": { "debugger": { "allowedTools": "readOnly" }, "builder": { "allowedTools": "safe" } }, "repositories": [{ "id": "workspace-123456", "name": "my-app", "repositoryPath": "/path/to/repo", "allowedTools": ["Read", "Edit", "Bash(git:*)", "Bash(gh:*)", "Task"], "mcpConfigPath": "./mcp-config.json", "teamKeys": ["BACKEND"], "projectKeys": ["API Service", "Backend Infrastructure"], "routingLabels": ["backend", "api", "infrastructure"], "labelPrompts": { "debugger": { "labels": ["Bug", "Hotfix"], "allowedTools": "all" }, "builder": { "labels": ["Feature"] }, "scoper": { "labels": ["RFC", "Design"] } } }] } ``` -------------------------------- ### Install ngrok on macOS Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-endpoint/SKILL.md Provides Homebrew command to install ngrok on macOS. ```bash brew install ngrok ``` -------------------------------- ### Step 4: Start an Agent Session Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/CLAUDE.md Commands to start, monitor, and stop an agent session on a created issue. ```bash # Start a session on the issue (use the issue-id from create-issue output) CYRUS_PORT=3458 ./f1 start-session --issue-id issue-1 # Monitor the session CYRUS_PORT=3458 ./f1 view-session --session-id session-1 # Stop when done CYRUS_PORT=3458 ./f1 stop-session --session-id session-1 ``` -------------------------------- ### Start F1 Server in Multi-Repo Mode Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/2026-01-13-multi-repo-orchestration.md Commands to start the F1 server with multiple repository paths configured. ```bash cd /Users/agentops/.cyrus/worktrees/CYPACK-711/apps/f1 CYRUS_PORT=30111 \ CYRUS_REPO_PATH=/Users/agentops/.cyrus/worktrees/CYPACK-711 \ CYRUS_REPO_PATH_2=/Users/agentops/.cyrus/worktrees/CYPACK-711 \ node dist/server.js ``` -------------------------------- ### Step 1: Create a Test Repository Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/CLAUDE.md Command to scaffold a test repository for the rate limiter library. ```bash cd apps/f1 # Scaffold the test repo at any location ./f1 init-test-repo --path /tmp/rate-limiter-test # The generated repo contains: # ✓ Token bucket algorithm (implemented) # ✗ Sliding window algorithm (TODO) # ✗ Fixed window algorithm (TODO) # ✗ Redis storage adapter (TODO) # ✗ Unit tests (TODO) ``` -------------------------------- ### Start F1 Server Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/002-unit-tests-rate-limiter.md Command to start the F1 server, specifying the port and repository path. ```bash CYRUS_PORT=3600 CYRUS_REPO_PATH=/tmp/f1-test-drive-1764900471 bun run server.ts & ``` -------------------------------- ### Multi-Repository Example (Electron) Source: https://github.com/cyrusagents/cyrus/blob/main/packages/edge-worker/README.md Example of initializing and starting the EdgeWorker for multiple repositories, suitable for an Electron application. ```typescript import { EdgeWorker } from '@cyrus/edge-worker' // Load repository configurations from user settings const repositories = userSettings.repositories.map(repo => ({ id: repo.id, name: repo.name, repositoryPath: repo.path, baseBranch: repo.branch || 'main', linearWorkspaceId: repo.linearWorkspaceId, linearToken: repo.linearToken, // Each repo can have its own token workspaceBaseDir: path.join(app.getPath('userData'), 'workspaces', repo.id), isActive: repo.enabled })) const edgeWorker = new EdgeWorker({ proxyUrl: config.proxyUrl, claudePath: getClaudePath(), // Multiple repositories repositories, // UI updates with repository context handlers: { onClaudeEvent: (issueId, event, repositoryId) => { // Update UI with Claude's progress mainWindow.webContents.send('claude-event', { issueId, event, repository: repositories.find(r => r.id === repositoryId) }) }, onSessionStart: (issueId, issue, repositoryId) => { const repo = repositories.find(r => r.id === repositoryId) // Show notification new Notification({ title: `Processing Issue in ${repo.name}`, body: `Working on ${issue.identifier}: ${issue.title}` }).show() }, createWorkspace: async (issue, repository) => { // Create git worktree for the specific repository const worktreePath = await createWorktree( repository.repositoryPath, issue.identifier, repository.baseBranch ) return { path: worktreePath, isGitWorktree: true } } } }) await edgeWorker.start() ``` -------------------------------- ### Single Repository Example (CLI) Source: https://github.com/cyrusagents/cyrus/blob/main/packages/edge-worker/README.md Example of initializing and starting the EdgeWorker for a single repository using the CLI. ```typescript import { EdgeWorker } from '@cyrus/edge-worker' const edgeWorker = new EdgeWorker({ // Connection proxyUrl: 'https://edge-proxy.example.com', // Claude claudePath: '/usr/local/bin/claude', defaultAllowedTools: ['bash', 'edit', 'read'], // Single repository configuration repositories: [{ id: 'main-repo', name: 'Main Repository', repositoryPath: '/home/user/projects/main', baseBranch: 'main', linearWorkspaceId: 'workspace-123', linearToken: await oauthHelper.getAccessToken(), workspaceBaseDir: '/home/user/.cyrus/workspaces/main' }], // Optional handlers handlers: { // Custom workspace creation (e.g., git worktrees) createWorkspace: async (issue, repository) => { const path = await createGitWorktree( repository.repositoryPath, issue.identifier, repository.baseBranch ) return { path, isGitWorktree: true } }, // Log errors onError: (error) => { console.error('EdgeWorker error:', error) } }, // Features features: { enableContinuation: true, enableTokenLimitHandling: true } }) // Start processing await edgeWorker.start() ``` -------------------------------- ### Evaluate Results - Interactive Verification Examples Source: https://github.com/cyrusagents/cyrus/blob/main/packages/edge-worker/prompts/orchestrator.md Examples of commands for starting development servers and interactive verification. ```bash npm run dev pnpm dev ``` -------------------------------- ### Click "Create New App" using agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-slack/SKILL.md Automates clicking the 'Create New App' button. ```bash agent-browser click "button:text('Create New App')" ``` -------------------------------- ### Update agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Command to update agent-browser if it is installed. ```bash npm update -g agent-browser ``` -------------------------------- ### Check for agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-prerequisites/SKILL.md Command to check if agent-browser is installed. ```bash which agent-browser ``` -------------------------------- ### Step 1: Start F1 Server Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/005-stop-functionality-graceful-handling.md Command to start the F1 server with specified port and repository path. ```bash cd apps/f1 CYRUS_PORT=3650 CYRUS_REPO_PATH=/Users/agentops/.cyrus/worktrees/CYPACK-648 pnpm run server ``` -------------------------------- ### Get CYRUS_BASE_URL Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-linear/SKILL.md Retrieves the CYRUS_BASE_URL from the Cyrus .env file. ```bash grep '^CYRUS_BASE_URL=' ~/.cyrus/.env | cut -d= -f2- ``` -------------------------------- ### Check if ngrok is installed Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-endpoint/SKILL.md Verifies if the ngrok command is available in the system's PATH. ```bash which ngrok ``` -------------------------------- ### F1 setup commands Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/2026-02-12-cursor-harness-validation.md Initializes a test repository using the F1 CLI. ```bash cd apps/f1 ./f1 init-test-repo --path /tmp/f1-test-drive-cursor-20260212-161603 ``` -------------------------------- ### systemd: Useful Commands Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-launch/SKILL.md Useful systemd commands for managing the Cyrus service. ```bash sudo systemctl status cyrus sudo journalctl -u cyrus -f sudo systemctl restart cyrus ``` -------------------------------- ### Server Startup Command Source: https://github.com/cyrusagents/cyrus/blob/main/apps/f1/test-drives/004-validation-loop-planted-bug.md The command used to start the F1 Testing Framework Server for the test drive. ```bash CYRUS_PORT=3602 CYRUS_REPO_PATH=/tmp/validation-fail-test pnpm run server ``` -------------------------------- ### Environment Variables for Cloudflare Tunnel Source: https://github.com/cyrusagents/cyrus/blob/main/docs/CLOUDFLARE_TUNNEL.md Set these environment variables for Cloudflare Tunnel integration. Cyrus automatically starts the tunnel when CLOUDFLARE_TOKEN is detected. ```bash export CYRUS_BASE_URL=https://cyrus.yourdomain.com export CYRUS_SERVER_PORT=3456 export CLOUDFLARE_TOKEN=eyJhIjoiXXXXXXX...your_token_here...XXXXXXX ``` -------------------------------- ### Create the Slack App using agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-slack/SKILL.md Automates clicking the 'Create' button after reviewing the app summary. ```bash agent-browser click "button:text('Create')" ``` -------------------------------- ### Navigate to Slack app creation using agent-browser Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-slack/SKILL.md Automates the navigation to the Slack app creation URL using the agent-browser tool. ```bash agent-browser navigate "https://api.slack.com/apps" ``` -------------------------------- ### Create Helper HTML Page and Serve Locally Source: https://github.com/cyrusagents/cyrus/blob/main/skills/cyrus-setup-github/SKILL.md Bash script to escape the manifest JSON, create a helper HTML page, and serve it locally to initiate the GitHub App creation flow. ```bash # Escape the manifest JSON for safe embedding in an HTML attribute MANIFEST_HTML_ESCAPED=$(echo '' | sed 's/"/\"/g') cat > /tmp/github-app-manifest.html << HTMLEOF

Click the button to create the GitHub App:

HTMLEOF # Serve the page on a local port (works for headless/remote setups) python3 -m http.server 8976 --directory /tmp & HTTP_SERVER_PID=$! echo "Serving at http://localhost:8976/github-app-manifest.html" ``` -------------------------------- ### Start the agent Source: https://github.com/cyrusagents/cyrus/blob/main/apps/cli/README.md Start the cyrus agent. ```bash cyrus ```