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

atelier-note

v0.1.1

Published

Command-line interface for Truth Truth (T²) — Truth, twice.

Readme

atelier-note (Truth Truth · T² CLI)

A command-line interface for Truth Truth — your second digital mind, scriptable from the terminal. Designed for AI-native workflows (pipe into LLMs, cron jobs, scripts, automation).

Brand: Truth Truth · Truth, twice. The npm package, bin name, env vars (ATELIER_API_URL, ATELIER_TOKEN), and config directory all keep the legacy atelier slug so existing users' workflows don't break.

Install

npm install -g atelier-note
# or: pnpm add -g atelier-note

Then atelier --help. Requires Node 20+.

From source (for contributors)

cd cli
pnpm install
pnpm build
pnpm link --global

Sign in

You need a Personal Access Token (PAT, starts with atl_). You can get one two ways:

Option A — email + password (easiest)

atelier auth login --email [email protected] --token-name 'laptop'
# prompts for password, mints a 90-day PAT, and stores it.

Option B — paste an existing PAT

atelier auth login --token atl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Check status

atelier auth whoami
atelier auth status

Commands

| Command | What it does | |---|---| | atelier capture "thought" | Fast-capture into Inbox (also accepts --file / stdin) | | atelier note add <text…> | Create a note (supports --tag, --folder, --file, stdin) | | atelier note ls | List notes (--limit, --folder, --tag, --json) | | atelier note get <id> | Print markdown content | | atelier note edit <id> | Update title / tags / folder / status / content | | atelier note search <q…> | Full-text search | | atelier note rm <id> | Delete (-y to skip confirm) | | atelier folder ls | Folder tree | | atelier tag ls | All tags | | atelier token ls/create/rm | Manage PATs (requires a full browser/app login — not a PAT) |

Every read-style command supports --json for piping into jq or scripts.

Global flags:

  • --api-url <url> — point at a different backend for one invocation
  • --version / -V — print CLI version
  • --help / -h — works on every command and subcommand

Configuration

Config lives at ~/.config/atelier/config.json (or $XDG_CONFIG_HOME/atelier/). Permissions are locked to 0600.

Environment variables override the config file:

  • ATELIER_API_URL — backend URL (default https://backend.jilly.app)
  • ATELIER_TOKEN — PAT to use (bypasses the stored one)

AI-native examples

# Pipe a long transcript into your Inbox
ffmpeg -i talk.m4a -f wav - | whisper - | atelier capture --tag meeting

# Summarise today's notes with a local LLM
atelier note ls --json --limit 20 | jq '.[].id' | \
  xargs -I{} atelier note get {} | ollama run llama3 "summarise this"

# Grep across your brain
atelier note search "RAG" --json | jq -r '.items[].id'

Security notes

  • PATs are prefixed atl_; only the prefix (atl_xxxxxxxx) is ever retrievable after creation. The plaintext is shown once.
  • PAT scopes are enforced server-side by HTTP method: GET/HEAD need read, everything else needs write. admin is reserved.
  • PATs cannot manage other PATs (/tokens/* requires an interactive session). This prevents a leaked PAT from creating permanent replacements.
  • Rate limiting is keyed per-token, not per-IP.

Troubleshooting

  • HTTP 401 INVALID_API_TOKEN — run atelier auth login again.
  • HTTP 403 SESSION_REQUIRED — you tried to call /tokens/* with a PAT; use the iOS app or mint a JWT.
  • Network errors — check ATELIER_API_URL and atelier auth status.