npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ojschwa/ttt-cli

v0.1.3

Published

TinyTalkingTodos CLI - Manage your todo lists from the command line

Readme

ttt-cli

Command-line interface for TinyTalkingTodos - manage your todo lists from the terminal.

Installation

npm install -g @ojschwa/ttt-cli

Quick Start

# Login to your account
ttt auth login

# List your todo lists
ttt list ls

# View todos in a list
ttt todo ls --list "My List"

# Add a todo
ttt todo add "Buy groceries" --list "My List"

# Mark as done
ttt todo done <todo-id>

Commands

Authentication

ttt auth login    # Login via browser
ttt auth logout   # Logout
ttt auth status   # Check login status
ttt auth export   # Export env vars for scripts

Lists

ttt list ls                      # List all lists
ttt list ls --json               # JSON output
ttt list get <name-or-id>        # Get list details
ttt list create <name>           # Create a new list
ttt list update <name-or-id>     # Update a list
ttt list delete <name-or-id>     # Delete a list (alias: rm)

List Options

# Create with options
ttt list create "My List" --color "blue" --type "Info" --icon "📋"

# Update a list
ttt list update "My List" --name "New Name" --color "green" --icon "✅"

# Delete (use --force if list has todos)
ttt list delete "Old List" --force

Todos

ttt todo ls --list <name-or-id>              # List todos
ttt todo ls --list <name-or-id> --json       # JSON output
ttt todo add <text> --list <name-or-id>      # Add a todo
ttt todo update <id>                         # Update a todo
ttt todo done <id>                           # Mark complete
ttt todo undone <id>                         # Mark not complete
ttt todo delete <id>                         # Delete a todo (alias: rm)

Todo Options

ttt todo add "Task" --list "List" \
  --notes "Additional notes" \
  --date 2026-02-02 \
  --time 15:00 \
  --category "Work" \
  --emoji "📝" \
  --url "https://example.com" \
  --email "[email protected]" \
  --street-address "123 Main St" \
  --number 42 \
  --amount 99.99 \
  --rating 5 \
  --type "A"

Update a Todo

ttt todo update <id> --text "New text" --category "Urgent"
ttt todo update <id> --done      # Mark as done
ttt todo update <id> --not-done  # Mark as not done

Batch Operations

Add or update multiple todos at once using JSON:

# Batch add
ttt todo batch-add --list "Groceries" --items '[
  {"text": "Milk"},
  {"text": "Eggs", "fields": {"category": "Dairy"}},
  {"text": "Bread", "fields": {"amount": 3.50}}
]'

# Batch update
ttt todo batch-update --items '[
  {"id": "todo-abc123", "fields": {"done": true}},
  {"id": "todo-def456", "fields": {"text": "Updated", "category": "Urgent"}}
]'

Undo

All mutating operations can be undone:

ttt undo           # Undo the last operation
ttt undo 3         # Undo the last 3 operations
ttt history        # View undo history
ttt history --json # JSON output

Daemon (for faster commands)

The daemon keeps a persistent connection for faster subsequent commands:

ttt daemon start   # Start background daemon
ttt daemon stop    # Stop daemon
ttt daemon status  # Check daemon status

Output Formats

Default output is compact and token-efficient (great for LLM agents):

Today [1/6]
✓ Morning walk id:abc123
○ Buy groceries id:def456

Use --json for structured output:

ttt list ls --json
ttt todo ls --list "Today" --json

OpenClaw Integration

This CLI includes an OpenClaw skill that lets AI agents manage your todo lists.

Setup

  1. Install and authenticate the CLI:
npm install -g @ojschwa/ttt-cli
ttt auth login
  1. Install the skill via ClawHub:
clawhub install ttt
  1. Restart your gateway (or wait for the skills watcher to pick it up)

That's it — your agent can now manage your todo lists.

Manual Installation

Alternatively, copy the skill directly from this repo:

mkdir -p ~/.openclaw/workspace/skills/ttt
curl -o ~/.openclaw/workspace/skills/ttt/SKILL.md \
  https://raw.githubusercontent.com/joshuacrowley/ttt-cli/main/skills/ttt/SKILL.md

Skill Documentation

See skills/ttt/SKILL.md for the full skill documentation, including all commands, options, and example workflows.

Requirements

  • Node.js 18+
  • A TinyTalkingTodos account

License

MIT