Tai Hartman122 downloadsClassify past daily-note captures into linked atomic notes via the Anthropic API.
Get stuff out of your head into Obsidian — then have it filed, linked, and gently brought back so you can expand on it later.
The loop is simple:
Atoms/ (title, tags, reason-bearing links). Your original words stay verbatim as the body.It’s a second brain inside your vault, not a separate app and not a CRM. Person hubs you already keep get real links and backlinks.
Paid services notice. Atoms needs a paid AI service to file anything. Pick one: bring your own Anthropic API key and Anthropic bills you directly for your usage, or subscribe to Atoms Plus (hosted, no key to set up, and the only way to ask from Claude or ChatGPT) from Settings inside the plugin. Pricing and a free trial are at tryatoms.app. The plugin code itself is MIT and free.
Plugin id: atoms · Version: see manifest.json · Requires: Obsidian ≥ 1.11.4, core Daily Notes, and either an Anthropic API key or Atoms Plus
Coding agents: start at AGENTS.md (claim rules + constitution). Humans do not need to memorize process — agents must.
data.json) Anthropic bills you for the usage. With Atoms Plus you pay a monthly or yearly subscription instead, and requests go through the Atoms service. The plugin code is free (MIT); the AI behind it is not.| Step | Behavior |
|---|---|
| Capture | Instant dump — iOS Shortcut or typing bullets (- thought) in Daily Notes. Capture UI is not this plugin. |
| Classify | Anthropic structured output: keepable atom vs logistics noise (task soft-retired). Title, tags, reason-bearing links. |
| Write | New flat files (default Atoms/) + append markers under past captures so nothing reprocesses. |
| Update notes | Optional: re-run the same AI path on older atoms so titles/links match newer filing quality; body stays put. |
| People | Vault-aware person hubs + structural tags — no AI folders, no CRM. |
| Home | Mobile-first leaf: wait to file, library, first-day setup, For you resurface (incl. mind-change), progress while Preview/Process runs. |
| Atom graph | Command palette → Open atom graph — Global Graph filtered to atoms and notes they connect to (not the whole vault hairball). |
data.jsontaihartman/obsidian-atoms.main.js, manifest.json, and styles.css from the latest Release.<Vault>/.obsidian/plugins/atoms/.Optional integrity check (after a CI-built release): download SHA256SUMS.txt from the same release, then:
shasum -a 256 -c SHA256SUMS.txt
gh attestation verify main.js -R taihartman/obsidian-atoms
Empty vault → dump into Daily → file into a linked library → open notes in Obsidian whenever you want to expand them. Screenshots are phone-frame product UI with synthetic dogfood (not personal notes).
Open Atoms from the ribbon (library icon) or command palette → Open home. With no filed atoms yet, you get a setup card: write one bullet today, open today’s daily, install the capture shortcut.

Get it out of your head: top-level bullets in a past daily note (or today’s note if you only want to test later with “including today”). Phone shortcut or desktop typing both work.

When past days have unmarked bullets, home shows a waiting card (and a queue peek). Today’s daily is never auto-processed. Add an API key if prompted, then Preview / Process (or enable automatic filing after the privacy ack).

Filed claims land as flat notes under Atoms/. Home lists them with optional person / work chips. Tap a row to open the atom in Obsidian and keep writing.

Each atom keeps your capture text verbatim, plus frontmatter (created, source, tags, generated-by, quality stamps) and reason-bearing links the model proposed. Expand the note like any other Obsidian file.

Link to a person note you already keep (e.g. People/Jordan). Backlinks surface preferences and related atoms without a separate CRM.

Settings → Atoms: API key (SecretStorage), capture shortcut URL, model, atom folder, vocabulary. Version is shown at the top of the tab.

Atoms System/Inbox.md — the plugin creates that note and its Atoms Inbox bookmark for you.Uses Obsidian's Capture to Bookmark, which appends with the app force-quit — so a capture on a day with no daily still survives. See docs/capture-shortcut.md.
npm install
npm run dev # watch-build main.js
npm test
npm run build
./scripts/install-to-vault.sh # copy build into the throwaway vault
node scripts/seed-demo-vault.mjs # synthetic README dogfood (full library)
node scripts/seed-demo-vault.mjs --empty # first-day empty
node scripts/seed-demo-vault.mjs --waiting # past captures pending
Throwaway vault: test_vault/test vault/. Prefer that over a personal vault until dry-run looks right.
README screenshots use docs/media/demo-vault/ with fictional sample notes only (seed-demo-vault.mjs). Do not seed personal vault content into that folder.
| Doc | Purpose |
|---|---|
| CLAUDE.md | Agent rules / non-negotiables |
| docs/architecture.md | System map |
| docs/capture-shortcut.md | iOS shortcut + iCloud link |
| docs/design-handoff/atoms-view/ | Home UI mocks |
| docs/plans/ | Implementation plans |
Releases ship main.js, manifest.json, and styles.css (plus SHA256SUMS.txt) for manual install and for the Community directory once listed. Assets are built in GitHub Actions on version tags with artifact attestations.
Cut a release (maintainers): bump manifest.json + package.json (+ versions.json via npm version / version-bump.mjs) on master, then:
git tag 0.6.x
git push origin 0.6.x
The Release workflow builds, attests, and attaches assets. Do not upload laptop-built main.js for production tags.
(Previously obsidian-ai-linker; renamed with the product.)
MIT — see LICENSE.