Tai Hartman428 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) from Settings inside the plugin. Asking Claude or ChatGPT about your atoms uses a cloud mirror: hosted Plus, or run
plus-serviceyourself (Settings → Advanced → DIY Ask guide). 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. |
| Ask | Optional cloud copy of flat Atoms/*.md so Claude and ChatGPT can search. Vault stays the source of truth. Never writes atom bodies back. Hosted Plus, or DIY Ask. |
| Open loops | Intention notes stay open until a later atom redeems them. Command palette: Open loops: notes left for later and Open loops: review proposals. |
| Atom graph | Command palette → Open atom graph. Global Graph filtered to atoms and notes they connect to (not the whole vault hairball). |
data.jsonAtoms is in Obsidian's community directory. That is the usual way to install.
Use BRAT if you want prerelease builds before they hit the directory.
taihartman/obsidian-atoms.Stable vs beta (GitHub tags):
| Channel | Tag / version shape | GitHub Release | Who gets it |
|---|---|---|---|
| Stable | 0.7.10 (no suffix) |
not marked prerelease | Community plugins · BRAT with betas off |
| Beta | 0.7.11-beta.1 or -rc.1 |
marked prerelease | BRAT only if Enable betas is on |
If you cannot use the directory:
main.js, manifest.json, and styles.css from the latest stable Release (skip “Pre-release” unless you want beta).<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. Sign in to Plus or 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: Plus account (or your own API key), Ask mirror, capture shortcut URL, model, atom folder, vocabulary. Version is at the top of the tab.

Atoms/ current while Obsidian is open, so Claude and ChatGPT can ask. Wipe and Sync now live there too.Android: install Atoms Capture from Play, or open Settings → Atoms → 1 · Capture → Atoms Capture and press Get Atoms Capture. Link the vault in the app.
iPhone:
Atoms System/Inbox.md and the Atoms Inbox bookmark.When Obsidian next opens (or via the Drain inbox command), each line files into the daily for its stamp date. Then Preview / Process past days from Atoms home as usual.
The iPhone path uses Obsidian's Capture to Bookmark, which appends with the app force-quit. See docs/capture-shortcut.md. The Android app writes the same inbox.
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/how-atoms-works.html | Visual walkthrough of capture → file → resurface |
| docs/capture-shortcut.md | iOS shortcut + iCloud link |
| docs/ask-self-host.md | DIY Ask (run plus-service yourself) |
| 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 the Community directory and for manual install. Assets are built in GitHub Actions when a new version lands on master, with artifact attestations.
Cut a release (maintainers): bump manifest.json + package.json (+ versions.json via npm version / version-bump.mjs) and merge to master. CI creates the matching GitHub Release and tag. Do not hand-tag after a normal version-bump merge.
The Release workflow builds, attests, and attaches assets. Tag must equal package.json / manifest.json version. Stable: version 0.7.10 on master → ordinary Release. Beta: bump to 0.7.11-beta.1 on the feature branch and push that tag — do not merge the -beta version. A prerelease on the default branch delists the Community plugin. docs/runbooks/plugin-release-beta-stable.md. Do not upload laptop-built main.js for production tags.
(Previously obsidian-ai-linker; renamed with the product.)
MIT — see LICENSE.