> ## Documentation Index
> Fetch the complete documentation index at: https://toolkit.astralsolutions.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Set Up Toolkit to Start Automatically at System Login

> Register the Toolkit daemon with your OS startup mechanism on Windows, Linux, and macOS. Choose from three modes: notify, silent, or browser launch.

The autostart feature registers the Toolkit daemon with your operating system's startup mechanism so it's always available the moment you log in — no need to run `toolkit ui` or `toolkit daemon` by hand every session. Once enabled, the daemon starts in the background according to the mode you choose, and every Toolkit feature (proxy routes, ports inspection, hosts management, and the web dashboard) is ready before you open your first terminal.

## Startup Modes

Toolkit supports three startup behaviors. Choose the one that fits your workflow:

<AccordionGroup>
  <Accordion title="daemon_notify (default)" icon="bell">
    Starts the Toolkit daemon silently in the background, then sends a **native desktop notification** once all services (proxy, API server) are ready and accepting connections.

    This is the recommended default — you get confirmation that Toolkit is running without any browser windows or terminal output interrupting your login flow.

    ```bash theme={null}
    toolkit autostart enable
    # or explicitly:
    toolkit autostart enable --mode daemon_notify
    ```
  </Accordion>

  <Accordion title="daemon_silent" icon="bell-slash">
    Starts the Toolkit daemon in the background with **no notifications and no browser windows**. Toolkit simply becomes available quietly; you'll never see a prompt or pop-up.

    Use this mode on machines where you want zero login-time UI disruption, or in automated/shared environments where desktop notifications aren't appropriate.

    ```bash theme={null}
    toolkit autostart enable --mode daemon_silent
    ```
  </Accordion>

  <Accordion title="browser_launch" icon="browser">
    Starts the Toolkit daemon and **automatically opens the web dashboard** in your default browser at `http://toolkit.localhost` as part of the login sequence.

    Use this mode if the dashboard is a core part of your daily workflow and you want it front and center the moment your session starts.

    ```bash theme={null}
    toolkit autostart enable --mode browser_launch
    ```
  </Accordion>
</AccordionGroup>

## Enabling Autostart

<Steps>
  <Step title="Enable with the default mode">
    Run the following command to register Toolkit with your OS startup mechanism using the `daemon_notify` mode:

    ```bash theme={null}
    toolkit autostart enable
    ```

    On success, you'll see:

    ```
    ✔ Auto-start enabled successfully in daemon_notify mode.
      On system boot, the daemon will start silently and send a desktop notification.
    ```
  </Step>

  <Step title="Enable in silent mode">
    To start the daemon at login without any notifications or browser windows, pass the `--mode` flag:

    ```bash theme={null}
    toolkit autostart enable --mode daemon_silent
    ```
  </Step>

  <Step title="Verify the status">
    Confirm that autostart is registered correctly and review the active configuration:

    ```bash theme={null}
    toolkit autostart status
    ```

    See the [Checking Status](#checking-status) section below for a full example of the output.
  </Step>
</Steps>

## Platform Integrations

Toolkit writes a startup entry to the appropriate OS-native location — no third-party daemon managers or elevated privileges required:

| OS      | Startup Mechanism | Location                                             |
| ------- | ----------------- | ---------------------------------------------------- |
| Windows | Registry Run Key  | `HKCU\Software\Microsoft\Windows\CurrentVersion\Run` |
| Linux   | XDG Autostart     | `~/.config/autostart/all-in-one-toolkit.desktop`     |
| macOS   | LaunchAgents      | `~/Library/LaunchAgents/com.allinone.toolkit.plist`  |

<Tip>
  All three integrations are **user-scoped** — Toolkit registers under your login session only, so you never need administrator or `sudo` privileges to enable or disable autostart.
</Tip>

## Disabling Autostart

To remove the startup entry and stop Toolkit from launching at login, run:

```bash theme={null}
toolkit autostart disable
```

On success, you'll see:

```
✔ Auto-start disabled successfully.
```

The daemon will no longer start on login. Any currently running Toolkit processes are unaffected — only future logins are changed.

## Checking Status

Use `toolkit autostart status` to inspect the current autostart configuration at any time:

```bash theme={null}
toolkit autostart status
```

Example output:

```
=== Auto-Start at Boot Status ===

Enabled:  YES
Mode:     daemon_notify
Platform: linux
URL:      http://toolkit.localhost
```

The output shows:

* **Enabled** — whether autostart is currently registered with the OS (`YES` / `NO`).
* **Mode** — the active startup behavior (`daemon_notify`, `daemon_silent`, or `browser_launch`).
* **Platform** — the OS detected at registration time (`windows`, `linux`, or `darwin`).
* **URL** — the target URL the daemon will serve on startup.

## JSON Output for Scripted Checks

Every `autostart` subcommand accepts a `--json` flag for structured output. This is useful in CI pipelines, dotfile bootstrap scripts, or any automation that needs to assert on the current state:

```bash theme={null}
toolkit autostart status --json
```

Example output:

```json theme={null}
{
  "enabled": true,
  "mode": "daemon_notify",
  "targetUrl": "http://toolkit.localhost",
  "commandPath": "/usr/local/bin/toolkit",
  "platform": "linux"
}
```

You can also use `--json` with `enable` and `disable` to get machine-readable confirmation:

```bash theme={null}
toolkit autostart enable --mode daemon_silent --json
```

```json theme={null}
{
  "success": true,
  "mode": "daemon_silent"
}
```

```bash theme={null}
toolkit autostart disable --json
```

```json theme={null}
{
  "success": true
}
```
