Skip to main content
The CLI supports two authentication methods: browser-based OAuth login (for interactive use) and Personal Access Tokens (for CI/CD and automation).

Browser Login (OAuth)

The simplest way to authenticate:
trilo login
This will:
  1. Open your browser to the Trilo authorization page
  2. Ask you to approve CLI access to your workspace
  3. Store your token securely in ~/.config/trilo/credentials.json
  4. Auto-select your workspace (or prompt you to choose if you have multiple)
Tokens are automatically refreshed when they expire — you should only need to run trilo login once. To log out and clear stored credentials:
trilo logout

Personal Access Tokens (PAT)

For CI/CD pipelines, scripts, and automation, use a Personal Access Token:
  1. Go to Settings > Tokens in the Trilo web app
  2. Create a new token with the scopes you need
  3. Set it as an environment variable:
export TRILO_TOKEN="trilo_pat_xxx"
Or write it to the config file:
mkdir -p ~/.config/trilo
echo '{"token":"trilo_pat_xxx","url":"https://api.trilo.chat"}' > ~/.config/trilo/credentials.json
chmod 600 ~/.config/trilo/credentials.json
PAT tokens provide persistent access to your workspace. Store them securely and rotate them periodically. Never commit tokens to version control.

Workspace Selection

After authenticating, set your default workspace:
# List available workspaces
trilo workspace list

# Set default workspace
trilo workspace set <workspace-id>

# Check current workspace
trilo workspace current
You can also override the workspace per-command:
trilo tasks list --workspace <other-workspace-id>

Environment Variables

VariableDescriptionDefault
TRILO_TOKENOverride stored token
TRILO_API_URLAPI endpoint URLhttps://api.trilo.chat
TRILO_FRONTEND_URLFrontend URL (for trilo login)https://app.trilo.chat

Configuration Files

All config is stored in ~/.config/trilo/ (respects XDG_CONFIG_HOME):
FileContentsPermissions
credentials.jsonAccess token, refresh token, API URL0600 (owner-only)
config.jsonDefault workspace ID and name0600 (owner-only)

CI/CD Example

# GitHub Actions example
jobs:
  create-task:
    runs-on: ubuntu-latest
    steps:
      - name: Create deployment task
        env:
          TRILO_TOKEN: ${{ secrets.TRILO_PAT }}
        run: |
          bunx trilo tasks create \
            --title "Deploy ${{ github.sha }}" \
            --project-id ${{ vars.TRILO_PROJECT_ID }} \
            --status in_progress \
            --priority high