OpenTIL
by @biao29
Capture and manage TIL (Today I Learned) entries on OpenTIL. Use /til <content> to capture, /til to extract insights from conversation, or /til list|publish|edit|search|delete|status|sync|tags|categories|batch to manage entries -- all without leaving the CLI.
1. Go to https://opentil.ai/dashboard/settings/tokens and create a Personal Access Token with read:entries, write:entries, and delete:entries scopes
2. Copy the token (starts with til_)
3. Set the environment variable:
export OPENTIL_TOKEN="til_xxx"
Token Resolution
Token resolution order:
1. $OPENTIL_TOKEN environment variable (overrides all profiles)
2. ~/.til/credentials file β active profile's token (created by /til auth)
If neither is set, entries are saved locally to ~/.til/drafts/.
Credential File Format
~/.til/credentials stores named profiles in YAML:
active: personal
profiles:
personal:
token: til_abc...
nickname: hong
site_url: https://opentil.ai/@hong
host: https://opentil.ai
work:
token: til_xyz...
nickname: hong-corp
site_url: https://opentil.ai/@hong-corp
host: https://opentil.ai
active: name of the currently active profileprofiles: map of profile name β credentialstoken, nickname (from API), site_url, hostBackward compatibility: If ~/.til/credentials contains a plain text token (old format), silently migrate it to a default profile in YAML format and write back.
lang field) is independent -- it is always detected from the content itself.published: true) -- use /til unpublish to revert to draftlist, publish, edit, search, delete, tags, categories, sync, batch) require a token -- no local fallback. Exception: status and auth (including auth switch, auth list, auth remove, auth rename) work without a token.list/search/tags/categories need read:entries, publish/unpublish/edit/sync/batch need write:entries, delete needs delete:entries. status uses read:entries when available but works without a token.clawhub install til