cursord

A lightweight daemon that connects to a control plane and executes AI agent tasks in your environment.

Quick Install

curl -fsSL https://cursord.com/install.sh | bash

Manual Download

Usage

cursord --name "my-daemon" --tools /path/to/tools.json

Or explicitly use the start command:

cursord start --name "my-daemon"

The control plane defaults to https://c.cursord.com. Override with:

cursord --control-plane https://your-control-plane.com --name "my-daemon"

Check version:

cursord version

CLI Options

Flag Description Default
--control-plane Control plane URL (required) -
--name Daemon display name hostname
--tools Path to tools configuration file (JSON) -
--workers Number of concurrent workers 1
--workdir Base working directory for workers /tmp/cursord

Environment Variables

Variable Description
CURSORD_CONTROL_PLANE Control plane URL
CURSORD_NAME Daemon display name
CURSORD_TOOLS Path to tools.json
CURSORD_WORKERS Number of concurrent workers
CURSORD_WORKDIR Base working directory
CURSORD_INSTALL_DIR Installation directory (installer only)
CURSORD_BASE_URL Base URL for downloads (installer only)

Configuring Tools

Tools are defined in a JSON file. Each tool has a name, description, parameters (JSON Schema), and a shell command template.

{
  "tools": [
    {
      "name": "execute_sql",
      "description": "Execute a SQL query",
      "parameters": {
        "type": "object",
        "properties": {
          "query": { "type": "string", "description": "SQL query" }
        },
        "required": ["query"]
      },
      "command": "psql \"$DATABASE_URL\" --csv -c {{.query | shellquote}}",
      "env": ["DATABASE_URL"],
      "timeout": 30000
    }
  ]
}

Tool Properties

Property Description Required
name Tool identifier Yes
description What the tool does (shown to AI agent) No
parameters JSON Schema for tool parameters No
command Shell command template (Go text/template) Yes
env Required environment variables No
timeout Execution timeout in milliseconds No (default: 30000)

Template Functions

shellquote - Safely quotes values for shell use. Always use this for user input to prevent injection.

"command": "cat {{.filename | shellquote}}"

Daemon Management

Linux (systemd)

sudo systemctl status cursord     # Check status
sudo systemctl restart cursord    # Restart daemon
sudo journalctl -u cursord -f     # Follow logs

macOS (launchd)

launchctl list | grep cursord                    # Check if running
tail -f ~/Library/Logs/cursord/cursord.log       # Follow logs
launchctl unload ~/Library/LaunchAgents/com.cursor.cursord.plist  # Stop
launchctl load ~/Library/LaunchAgents/com.cursor.cursord.plist    # Start