Skip to content

About

Study anything. Keep everything you learn.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation


Absorb Anything is a local-first CLI for people (and AI agents) who are always absorbing something new — a codebase to evaluate, a library to build on, a reference implementation, a paper and its companion repo. Point it at whatever you're studying and that material gets a home: a place where checkouts, observations, analyses, and distilled knowledge accumulate, instead of evaporating when the terminal closes and the next chat session starts from zero.

absorb init                                      # one .absorb/ folder, right in your repo
absorb add https://github.com/qiskit/qiskit      # a repo URL or any folder — give it a home
absorb log qiskit                                # how it changed since you last looked
absorb analysis new "Adopt the scheduler?" --for-source qiskit
absorb knowledge add pattern "Pulse schedules are immutable plans"

Status: 0.1.2, on npm. The commands above are the committed surface for the first release, not a mockup.

Install

Requires Node >= 22.13.

npm install -g absorb-anything

To hack on it instead, clone and build; the CLI lands at packages/absorb-anything/dist/cli.js:

git clone https://github.com/NB-Corp/absorb-anything
cd absorb-anything
pnpm install && pnpm build

The loop

Everything in Absorb Anything serves one loop:

sources/ (absorb it) → analyses/ (decide on it) → knowledge/ (keep what survived)

A source is any external material kept where its origin and its changes stay readable — a git checkout that syncs, or a one-time copy of anything else. An analysis is the working surface where you read it and reach a decision. Knowledge is what survived the decision and is worth reusing. Files all the way down: no server, no database, no account. Everything sits in a single .absorb/ directory inside the repo you already work in; if evidence deserves a dedicated repo of its own, that's absorb init --standalone.

Absorbing a source records where it came from and what state you saw it in:

$ absorb add https://github.com/sindresorhus/slugify
Added source: .absorb/sources/slugify
Observation: .absorb/sources/slugify/observations/20260828-7c318bd1aa4b.yaml
Checkout: .absorb/sources/slugify/checkout
Materials: .absorb/sources/slugify/materials
Hint: Observe changes with `absorb sync`; preserve decision-critical bytes with `absorb capture`.

$ absorb log slugify
Source log: slugify
2026-08-28T19:59:18+08:00 add normal 20260828-7c318bd1aa4b
  checkout-backed source added from https://github.com/sindresorhus/slugify

Clone once. Reference everywhere.

The problem with studying code across projects is not disk space — it's re-reading. The same library gets cloned into five projects and understood five times from scratch.

Here, one workspace owns a source's home. Every other workspace links to it with a few dozen bytes:

absorb link ../research qiskit        # sources/qiskit/source.ref.yaml, that's the whole file
absorb sync qiskit                    # works from anywhere; writes through to the real home
absorb home qiskit                    # shows where the home actually is

A machine-local registry remembers every home you've created, so absorb add on a URL you already studied says so before you clone it again, and a broken link tells you where the home went.

Evidence when the decision needs it

Recording is priced by what your decision is worth, not by what the tool can measure:

  • Reading around? An entry is an alias and a date. Nothing else.
  • Adopting or rejecting? Pin the commit (free for git sources).
  • Need the bytes to survive upstream deletion? absorb capture snapshots them with an integrity hash.

Syncing never refuses to work because your checkout is dirty. Local experiments on someone else's code are how reading actually happens; the ledger records them as what they are.

Built for AI agents

Agents misuse tools whose semantics live only in documentation. This CLI explains itself at the point of use:

absorb prime            # one screen: what each object is for, and the current workspace state
absorb explain source   # why an object exists, when not to use it, common misuses

Mutating commands end with a one-line reminder of the rule most often broken, and error messages state the correct model instead of just refusing. Start a session with absorb prime and the agent gets the semantics before it gets the chance to misread them.

Bring your own workflow

Absorb Anything claims exactly one thing: the study ledger in .absorb/. It has no task format to adopt and no prompts to swap, so it runs untouched alongside superpowers, Trellis, OpenSpec, or whatever conventions your repo already follows. Those systems decide what gets built; this one keeps what you learned along the way.

Want the build half on the same on-disk format, with tasks, roadmaps, and specs that survive the session? own-work is the pair we built for it. Use either alone, or run both over one .absorb/ directory.

Absorb anything. Build Your Own.

License

MIT.

About

Study anything. Keep everything you learn.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages