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

# Quickstart

> Install datumctl, log in, pick a context, and run your first command.

This guide takes you from nothing installed to running your first command against Datum Cloud. Follow the steps in order — the whole path takes just a few minutes.

<Info>
  Prefer a one-click download? Grab a build from [our downloads page](https://www.datum.net/download/datumctl/).
</Info>

<Steps>
  <Step title="Install datumctl">
    Choose the method that fits your platform.

    <Tabs>
      <Tab title="Homebrew (macOS)">
        If you use [Homebrew](https://brew.sh/), install `datumctl` from the official Datum Cloud tap:

        ```bash theme={null}
        # Tap the Datum Cloud formula repository (only needs to be done once)
        brew tap datum-cloud/homebrew-tap

        # Trust the datumctl formula
        brew trust --formula datum-cloud/homebrew-tap/datumctl

        # Install datumctl
        brew install datumctl
        ```

        Later, upgrade with `brew upgrade datumctl`.
      </Tab>

      <Tab title="Direct download">
        Download a pre-built binary from the [GitHub Releases page](https://github.com/datum-cloud/datumctl/releases/latest):

        1. Find the archive for your OS and architecture (for example `datumctl_Darwin_arm64.tar.gz`, `datumctl_Linux_x86_64.tar.gz`, or `datumctl_Windows_amd64.zip`).
        2. Download and extract it.
        3. Move the `datumctl` (or `datumctl.exe`) binary onto your `PATH` — for example `/usr/local/bin` on Linux/macOS.
        4. On Linux/macOS, make sure it is executable: `chmod +x /path/to/datumctl`.
      </Tab>
    </Tabs>

    Verify the install:

    ```bash theme={null}
    datumctl version
    ```

    This prints the installed client version.
  </Step>

  <Step title="Log in">
    Authenticate with Datum Cloud. `datumctl` uses [OAuth 2.0](https://oauth.net/2/) with [PKCE](https://oauth.net/2/pkce/) and stores your credentials securely in your system keyring — there are no API keys to manage.

    ```bash theme={null}
    datumctl login
    ```

    This opens your browser to complete sign-in, then discovers the organizations and projects you can access. For the full sign-in flow — the browser and device-code flows, `whoami`, and signing out — see [Logging in](/datumctl/auth/logging-in); for juggling several accounts see [Managing accounts & tokens](/datumctl/auth/managing-accounts).

    <Note>
      On a headless machine — SSH session, CI runner, or container with no browser — add `--no-browser` to authenticate with a device-code flow instead:

      ```bash theme={null}
      datumctl login --no-browser
      ```

      To sign in against a custom environment — such as a self-hosted Datum Cloud deployment — point at its auth server with `--hostname`, for example `datumctl login --hostname auth.example.com`.
    </Note>
  </Step>

  <Step title="Select your working context">
    A context is the organization or project that commands target by default, so you do not have to pass `--organization` or `--project` every time. For the full picture of how scope is resolved, read [Contexts & scoping](/datumctl/contexts-and-scoping).

    Right after login, `datumctl` shows the organizations and projects you can access and prompts you to pick one interactively.

    To see your contexts again at any time:

    ```bash theme={null}
    datumctl ctx
    ```

    To switch contexts — either interactively or by name using the `org` or `org/project` format:

    ```bash theme={null}
    # Interactive picker
    datumctl ctx use

    # Switch to a specific project context
    datumctl ctx use <org-id>/<project-id>
    ```
  </Step>

  <Step title="Run your first command">
    List the organizations you belong to. This command works without a context selected:

    ```bash theme={null}
    datumctl get organizations
    ```

    Once a context is set, list resources in it — for example the projects in your organization:

    ```bash theme={null}
    datumctl get projects --organization <org-id>
    ```

    Results are shown as a table by default. Add `-o json` or `-o yaml` for scripting or inspection (see [Output formats & scripting](/datumctl/output-and-scripting)), and use `datumctl api-resources` to [discover every resource type you can manage](/datumctl/discovering-resources).
  </Step>
</Steps>

## Next steps

You are now installed, authenticated, and pointed at a context. From here you can explore what else the CLI can do.

<CardGroup cols={2}>
  <Card title="Contexts & scoping" icon="crosshairs" href="/datumctl/contexts-and-scoping">
    Understand how commands choose an organization or project, and how to switch between them.
  </Card>

  <Card title="Reading resources" icon="cubes" href="/datumctl/resources/reading">
    List, retrieve, and inspect Datum Cloud resources with get and describe.
  </Card>

  <Card title="Discovering resources & schemas" icon="magnifying-glass" href="/datumctl/discovering-resources">
    Find which resource types exist and inspect their fields before you author manifests.
  </Card>

  <Card title="Output formats & scripting" icon="terminal" href="/datumctl/output-and-scripting">
    Machine-readable output, structured errors, and wrapping datumctl in CI and agents.
  </Card>

  <Card title="Interactive console" icon="table-columns" href="/datumctl/console">
    Browse and inspect resources in a full-screen, keyboard-driven UI.
  </Card>

  <Card title="Using plugins" icon="puzzle-piece" href="/datumctl/plugins/using-plugins">
    Extend datumctl with additional commands from a plugin catalog.
  </Card>

  <Card title="Managing accounts" icon="key" href="/datumctl/auth/managing-accounts">
    Manage multiple accounts, switch users, sign out, and print access tokens.
  </Card>

  <Card title="Overview" icon="compass" href="/datumctl/overview">
    Understand how datumctl is structured and how it talks to Datum Cloud.
  </Card>
</CardGroup>
