🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

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.

Versionv1.11.0
Installs1
βš™οΈ Configuration

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 profile
  • profiles: map of profile name β†’ credentials
  • Each profile stores: token, nickname (from API), site_url, host
  • Backward compatibility: If ~/.til/credentials contains a plain text token (old format), silently migrate it to a default profile in YAML format and write back.

    πŸ“‹ Tips & Best Practices

  • UI language adaptation: All prompts, result messages, and error messages in this document are written in English as canonical examples. At runtime, adapt them to match the user's language in the current session (e.g. if the user writes in Chinese, display messages in Chinese). Entry content language (lang field) is independent -- it is always detected from the content itself.
  • Entries are published immediately by default (published: true) -- use /til unpublish to revert to draft
  • The API auto-generates a URL slug from the title
  • Tags are created automatically if they don't exist on the site
  • Content is rendered to HTML server-side (GFM Markdown with syntax highlighting, KaTeX math, and Mermaid diagrams)
  • Management subcommands (list, 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.
  • Scope errors map to specific scopes: 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.
  • View on ClawHub
    TERMINAL
    clawhub install til

    πŸ§ͺ Use this skill with your agent

    Most visitors already have an agent. Pick your environment, install or copy the workflow, then run the smoke-test prompt above.

    πŸ” Can't find the right skill?

    Search 60,000+ AI agent skills β€” free, no login needed.

    Search Skills β†’