atelier-note
v0.1.1
Published
Command-line interface for Truth Truth (T²) — Truth, twice.
Maintainers
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 legacyatelierslug so existing users' workflows don't break.
Install
npm install -g atelier-note
# or: pnpm add -g atelier-noteThen atelier --help. Requires Node 20+.
From source (for contributors)
cd cli
pnpm install
pnpm build
pnpm link --globalSign 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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCheck status
atelier auth whoami
atelier auth statusCommands
| 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 (defaulthttps://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 needswrite.adminis 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— runatelier auth loginagain.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_URLandatelier auth status.
