Skip to content

Quickstart

Install

bash
npm install -g @doto/cli

Verify the installation:

bash
doto --version

Create an account & Log in

Accounts are created automatically via Google OAuth. To get your API key:

  1. Open your browser and navigate to http://localhost:5173/auth/login.
  2. Click Sign in with Google.
  3. After granting access, copy the generated API key.
  4. Back in your terminal, save the key to your CLI configuration:
bash
doto auth login --api-key doto_xxxxxxxx...
✓ Logged in as you@example.com

Your credentials are saved to ~/.config/doto/config.toml. You won't need to pass --api-key again.

Verify it worked:

bash
doto auth whoami

Create your first task

bash
doto task create --title "My first task"
✓ Task created: My first task (P2, ACCEPTED)
  ID: abc123...

Tasks you create for yourself start as ACCEPTED — ready to work on immediately.


Assign a task to a teammate

First, make sure you're both in the same team:

bash
doto team create --name "My Team" --visibility public --join-policy auto
# share the team ID with your teammate, they run:
# doto team join <team-id>

Then assign a task:

bash
doto task create --title "Review the proposal" \
  --team <team-id> \
  --assign <teammate-user-id> \
  --priority P1

The task lands in your teammate's inbox. They'll see it when they run doto inbox.

If you keep the default private team settings, doto team join <team-id> creates a join request instead. An owner or admin then approves it with:

bash
doto team requests <team-id>
doto team approve-request <team-id> <request-id>

Work through your inbox

When someone assigns a task to you, it appears in your inbox:

bash
doto inbox
┌──────────┬──────────────────────────┬──────────┬──────────┬────────────┐
│ ID       │ Title                    │ From     │ Priority │ Created    │
├──────────┼──────────────────────────┼──────────┼──────────┼────────────┤
│ abc123.. │ Review the proposal      │ alice... │ P1       │ 1/15/2024  │
└──────────┴──────────────────────────┴──────────┴──────────┴────────────┘

Act on it:

bash
doto task accept abc123...   # I'll take it
doto task start abc123...    # starting now
doto task done abc123...     # finished

What's next

Released under the MIT License.