# ox daemon (https://sageox.ai/docs/cli/daemon)

# ox daemon

Manage the background sync daemon that keeps your Ledger and Team Context automatically synchronized.

## What the daemon does

The SageOx daemon runs in the background and handles:

- **Automatic git sync** - Pushes and pulls changes to your Ledger and Team Context repos
- **Change debouncing** - Batches rapid changes to avoid excessive git operations
- **Periodic pulls** - Fetches updates from your team at regular intervals

The daemon starts automatically when you run `ox init` or `ox login`. You don't need to manage it manually unless troubleshooting.

## Usage

<Terminal>
  <TerminalCommand>ox daemon [command]</TerminalCommand>
</Terminal>

## Subcommands

| Command | Description |
|---------|-------------|
| `start` | Start the daemon |
| `stop` | Stop the daemon |
| `restart` | Restart the daemon |
| `status` | Show daemon status |
| `logs` | View daemon logs |
| `list` | List all running ox daemons |
| `kill` | Kill daemon process(es) |

## Check daemon status

<Terminal>
  <TerminalCommand>ox daemon status</TerminalCommand>
</Terminal>

<Terminal title="ox daemon status">
  <TerminalOutput>Daemon Status</TerminalOutput>
  <TerminalOutput>  PID: 12345</TerminalOutput>
  <TerminalOutput>  Running: yes</TerminalOutput>
  <TerminalOutput>  Uptime: 2h 15m</TerminalOutput>
  <TerminalOutput>  Last sync: 30s ago</TerminalOutput>
</Terminal>

### Status flags

| Flag | Description |
|------|-------------|
| `--verbose` | Show detailed status information |

## View daemon logs

<Terminal>
  <TerminalCommand>ox daemon logs</TerminalCommand>
</Terminal>

### Logs flags

| Flag | Description |
|------|-------------|
| `-n, --lines` | Number of lines to show (default: 50) |
| `-f, --follow` | Follow log output in real-time |
| `--path` | Show log file path instead of contents |
| `--all` | Show logs from all daemon instances |

Follow logs in real-time:

<Terminal>
  <TerminalCommand>ox daemon logs -f</TerminalCommand>
</Terminal>

## Start and stop

Start the daemon manually:

<Terminal>
  <TerminalCommand>ox daemon start</TerminalCommand>
</Terminal>

Run in foreground (for debugging):

<Terminal>
  <TerminalCommand>ox daemon start --foreground</TerminalCommand>
</Terminal>

Stop the daemon:

<Terminal>
  <TerminalCommand>ox daemon stop</TerminalCommand>
</Terminal>

Restart after configuration changes:

<Terminal>
  <TerminalCommand>ox daemon restart</TerminalCommand>
</Terminal>

## Managing multiple daemons

List all running ox daemons across your system:

<Terminal>
  <TerminalCommand>ox daemon list</TerminalCommand>
</Terminal>

Kill a specific daemon or all daemons:

<Terminal>
  <TerminalCommand>ox daemon kill</TerminalCommand>
  <TerminalCommand>ox daemon kill --all</TerminalCommand>
</Terminal>

## When to restart the daemon

Restart the daemon after:

- Changing SageOx configuration in `.sageox/config.toml`
- Updating the ox CLI to a new version
- Switching teams or repositories
- Resolving sync conflicts manually

## Troubleshooting

**Daemon not running** - Start it manually:

<Terminal>
  <TerminalCommand>ox daemon start</TerminalCommand>
</Terminal>

**Sync issues** - Check the logs for errors:

<Terminal>
  <TerminalCommand>ox daemon logs -n 100</TerminalCommand>
</Terminal>

**Daemon unresponsive** - Kill and restart:

<Terminal>
  <TerminalCommand>ox daemon kill && ox daemon start</TerminalCommand>
</Terminal>

**Multiple daemons running** - Clean up stale processes:

<Terminal>
  <TerminalCommand>ox daemon list</TerminalCommand>
  <TerminalCommand>ox daemon kill --all</TerminalCommand>
  <TerminalCommand>ox daemon start</TerminalCommand>
</Terminal>

## Related commands

- [ox init](/docs/cli/init) - Initialize repository (starts daemon automatically)
- [ox doctor](/docs/cli/doctor) - Diagnose configuration issues
- [ox login](/docs/cli/auth) - Authenticate with SageOx
