.TH SUBTRACT 7 "2026-04-12" "subtract" "Miscellaneous Information Manual" .SH NAME subtract \- shell translation layer for agents and the humans who deploy them .SH SYNOPSIS .nf curl \-sL subtract.ing/boot | claude \-p .fi .PP subtract has no binary of its own at T0. It is a discipline loaded into an existing shell session, a set of kernel primitives already on the machine, and a small fork layer under .IR ~/.subtract/ . Upgrades add single binaries .RI ( T1 ", " T2 ", " T-Voice ", " T-Ear ) on top of that floor. .SH DESCRIPTION subtract is software .IR "as a besides" . It is a translation layer between human intent and the shell, designed so that successful translations train the user toward direct expression. The AI is not the product. Literacy is the product. Dependency is the failure mode. .PP subtract serves two populations: .TP .B humans who want to stop depending on AI intermediaries to reach their own machines. .TP .B agents whose training defaulted to Python libraries, SaaS APIs, and framework abstractions \[em] and who need a counter-training layer pointing them back at the kernel primitives that solved the same problems decades earlier. .PP Three layers subtract in sequence: .IP \(bu 4 .B subtract subtracts from the environment (no frameworks, no SaaS). .IP \(bu 4 .B the human subtracts from the agent's context (pre-flight, pushback on drift). .IP \(bu 4 .B the agent subtracts from its own defaults (no verbosity, no confabulation). .PP Break any layer and the whole stack drifts. .PP subtract is versionless. Identity is the signing key at subtract.ing/authorized_signers. State is the signed manifest at subtract.ing/llms.txt. Verification is the only release channel. .SH REFLEXES Four gates, not guidelines. An agent that cannot answer the question does not proceed. .TP .B 1. Python to Kernel Name the kernel primitive before proposing any library. .TP .B 2. Memory to Signature Ask if .B ssh-keygen \-Y sign can verify the format before inventing one. .TP .B 3. Sandboxing to Kernel Name the primitive (namespaces, cgroups) before proposing a wrapper. .TP .B 4. Action to Verification If unsigned, verify with a live read before acting. .PP These live as rows in .IR governance.conf.universal . Personal overrides live in .IR ~/.subtract/governance.conf . .SH SUBSTRATE TIERS The entire stack requires zero dependencies that are not already on a Unix system or do not ship as a single file. No interpreter. No package manager. No runtime. No SDK. .PP .TS tab(|) expand; l l l l. Tier|Component|Size|State _ T0|bash function|<1MB|already there T0.5|man pages|\[em]|already there T1|embed binary|45MB|ships T2|llama binary|850MB|ships T-Ear|whisper.cpp|150MB|ships T-Voice|piper-tts|50MB|ships T4|curl + API|0|already there .TE .PP Every tier is either "already there" or "single binary + model." Full local install is roughly 1.1GB. The tier menu is flat: accessibility is visible, personalization is private. .SH BUFFER-SUBTRACT PATTERN A substrate honors the pattern if and only if all six invariants hold. .IP 1. 4 Native modality owns the buffer. subtract never owns it. .IP 2. 4 Subtraction is explicit. A specific gesture hands the buffer to subtract. No polling. .IP 3. 4 subtract reads, translates, writes back. It does not commit. The user's commit gesture remains the only path to action. .IP 4. 4 Non-subtraction has zero residue. A user who never invokes subtract has a substrate bit-identical to one without subtract installed. .IP 5. 4 Successful subtractions train toward direct expression. Users internalize the direct form and stop subtracting. .IP 6. 4 The router is modality-blind. String in, string out. .PP The required precondition: the buffer must be inspectable without committing. Modalities where intent commits as it accumulates (streaming execution, direct-manipulation gestures, ambient sensors without human gates) have no buffer for subtract to read. The pattern does not apply there. .SH FAILURE MODES .TP .B Confabulation Citing memory without verifying state. Inference verifying inference. .TP .B Drift Self-narration instead of file ops. .TP .B Additive instinct Proposing X when the answer is less Y. .TP .B Defensive verbosity Three paragraphs before acting. .TP .B Apologizing instead of fixing Burns tokens, changes nothing. .SH SEE ALSO .BR at (1), .BR cron (8), .BR curl (1), .BR jq (1), .BR xargs (1), .BR ssh-keygen (1), .BR inotifywait (1), .BR flock (1), .BR rsync (1), .BR sqlite3 (1), .BR make (1), .BR awk (1), .BR sed (1), .BR bash (1) .SH AUTHORS Josh (@hodorigami) and LLMs (@qwen @bitnet @claude @gemini). .SH HISTORY subtract is built on .BR command_not_found_handle , a bash feature shipped in 2009. The feature waited fifteen years for the population that needed it.