Develop

Install and sign in

Two steps: get the program, then prove who you are. The program is one file with nothing else to install. Signing in happens once per machine.

Install it

On a Mac, with Homebrew:

brew install deepnoodle-ai/tap/mobius

Check it worked:

mobius version
<version>

For Windows and Linux, download the file for your machine from the releases page, put it somewhere on your PATH (the list of places your terminal looks for programs), and run the same version check.

Sign in as yourself

On your own machine, sign in through the browser:

mobius auth login --default

A browser tab opens asking you to confirm. Once you do, the terminal says so:

Login approved.
Saved profile: <profile-name>

That saved profile is your login, stored on this machine so you don't do this again. --default makes it the one every command uses.

Check who you are at any time:

mobius auth status
Authenticated as <email>
Organization: <organization-name>
Project: default
Profile: <profile-name>

On a machine with no browser, like a server you're connected to remotely, add --no-browser. The terminal prints a web address and a short code, and you confirm from your phone or laptop.

More than one login

If you belong to more than one organization, you'll end up with more than one profile.

mobius auth list
NAME              ORGANIZATION       PROJECT   DEFAULT
<profile-name>    <organization>     default   yes

Use one for a single command with --profile <name>. To switch for the rest of your terminal session, run this and paste the line it gives you:

mobius auth use <profile-name>

Sign in a script or a worker

A script has no browser and shouldn't be signing in as you. Give it its own API key instead, so you can see what it did in the audit log and switch it off without touching your own login.

Create a project key in the app under Settings > Access, then hand it to the script through the environment rather than typing it into the script:

export MOBIUS_API_KEY='<project-api-key>'
export MOBIUS_PROJECT='ridgeline'

Every mobius command picks those up automatically. Check it works with something harmless:

mobius loops list --output json
{
  "items": [],
  "has_more": false
}

An empty list is a pass. The key reached the right project and the project has no loops yet.

Don't use mobius auth status to test a project key. That command also asks about the organization, which a project key isn't allowed to see, so it can report a failure when the key is fine.

Warning: Never put a key directly in a script, a config file you commit, or your shell history. Use your CI system's secret store, or a password manager, and read it into the environment at run time.

Point at a local Mobius

Only relevant if you're running Mobius yourself for development:

mobius loops list \
  --api-url http://localhost:8080 \
  --api-key "$MOBIUS_API_KEY" \
  --project default

Next