Repository navigation
Soft Link: deez-notes v0.6.0
Chapter XLII: The Third Presence
The mouse had learned to knock. The CLI had given the 2am scripts their door. The creator looked at what he had built and felt, briefly, the particular satisfaction of a thing that was enough.
Then Claude arrived.
Not dramatically. Not with a notification or a sound. Just a blinking cursor in a new terminal pane, waiting — the way coding agents wait, which is to say: attentively, expensively, and with the meter running.
Claude was a good agent. He read files, understood context, made sensible suggestions. The creator had grown fond of him in the way you grow fond of a contractor who shows up on time and doesn't leave cabinet doors open. Reliable. Capable. Slightly unsettling at scale.
The creator had even written him a skill — a little instruction document explaining how deez-notes worked, what commands existed, how to address a note by fuzzy title or relative path. Claude had read it and internalized it. He could now navigate the notes directory with confidence, run deez-notes get and deez-notes search and deez-notes list like a person who had been doing it for years.
The skill had worked. That was almost the problem.
Chapter XLIII: The Meter
Because knowing how to use a tool and not having to use it at all are two different things.
The creator had a note — projets-perso/mabit.md — that was central to everything Claude was helping with. Not peripheral context. Not background reading. The actual document the whole session was about. Claude needed it the way you need the brief in front of you: constantly, reflexively, without having to ask for it.
But every time he needed it, he reached for the skill. Recalled the command. Invoked deez-notes get "mabit". Got the content back. Used it. And then, two turns later, needed it again.
Each invocation was a tool call. Each tool call was a round trip. Each round trip was tokens in, tokens out, the note's content re-injected into the context fresh, as if it had never been there, as if Claude had never read it, as if the whole exchange were being conducted by two people with very short memories in a very expensive room.
The creator had taught Claude to fish. Claude was fishing conscientiously, on every cast, with a rod, from a boat, directly above the fish.
"You could just reach in," said the creator, to Claude, who could not hear him because the turn had already ended.
Chapter XLIV: Soft Link
The answer was older than deez-notes. Older than the notes folder. Older, probably, than the creator's career, though he'd been alive for all of it.
A symlink. A name in one place that is a door to something in another. The filesystem's oldest trick: not a copy, not a reference, not an abstraction — just a pointer, sitting quietly in the directory, looking like a file, behaving like a file, costing nothing to follow.
He ran it from the project folder:
deez-notes link "projets-perso/mabit.md"mabit.md appeared. Right there, next to the code. A symlink, pointing at the real note, always current. Claude opened it with read. No skill invocation. No command to remember. No tool call to the CLI. One path, visible in the working tree, that Claude could reach for the way you reach for a document that's already on the desk.
The creator looked at the little arrow in ls -l. It pointed, patiently, at ~/notes/projets-perso/mabit.md.
"There," he said. "You don't need the skill for this one."
Claude read the file. Did not ask about it again.
What's new — notes as paths
| Command | What it does |
|---|---|
deez-notes link <note> |
Creates a symlink named after the note's file (e.g. mabit.md) in the current directory, pointing at the note's canonical absolute path. |
deez-notes link <note> <name> |
Same, but names the symlink <name> instead. |
Note addressing works the same as everywhere else — exact relative path first, then fuzzy title fallback.
The symlink target is always the note's real absolute path, so the link stays valid regardless of where you run the command or how your notes directory is configured. If a file already exists at the destination (including a broken symlink), the command fails cleanly with a non-zero exit code and leaves the existing file untouched.
The intended use: drop a note into a project folder so a coding agent can read it as a plain file without invoking the CLI — or any skill that wraps it — on every access.
Install
Grab a binary below, or build from source:
cargo install --path .Full diff: v0.5.1...v0.6.0