A place to think with your notes.
Notient is a calm terminal workspace over Markdown you own. Ask it something and every claim opens the exact passage it came from. Let it suggest a change and nothing moves until you have read the diff.
Suggestions Requests → Change requested by codex pending · 1 file effects 1 evidence 2 changes 3 after 3 Plant basil after the last frost. Do not water the cactus daily. 4 + 5 + Mulch the tomato bed in June. 1 evidence · 2 changes · 3 after · a approve r reject · o source · Esc back
The notes stay yours. The models only visit.
One small daemon runs beside each vault. It reads your Markdown, keeps a structural and lexical index in a local database, and answers the terminal workspace, the command line, MCP agents such as Claude Code and Codex, an authenticated local HTTP API and an Obsidian companion plugin. They all reach the same operations with the same rules.
The index can always be rebuilt. Your approvals, rejections and change history cannot, so those are kept.
Answers carry their evidence
Ask, brief and compare return exact quotations bound to the saved revision they were read from. When the notes do not support an answer, Notient says so instead of reaching into the model's memory.
Changes wait for you
An agent, a pipeline or the in-app assistant can plan an edit, a move or an archive. It is stored as an exact before and after. Only a person applies it, and an edit you make in the meantime turns the plan stale instead of being overwritten.
Everything can be undone
Applied changes land in a journal with their original bytes. Undo is guarded: it refuses when you have written something newer, and it survives a restart halfway through.
Works before any model does
Reading, structure, links, tags and lexical search need no inference. Seven background workflows exist and every one of them is off until you turn it on.
One daemon. Five integrated surfaces.
Notient treats your Markdown files as the durable memory. Whether you work in a terminal, run scripted queries, connect agents or write in Obsidian, all surfaces connect to the same per-vault daemon with the same rules.
Terminal Workspace
Keyboard-first interactive TUI with persistent conversations, rendered Markdown, exact source navigation, recoverable drafts, and reviewed changes.
Ctrl+Popens the menuCtrl+Bcaptures a thoughtCtrl+Oswitches conversationsCtrl+Ssaves an answer
Command Line CLI
Direct terminal operations for search, structured Q&A, briefs, correlation, history inspection, and guided setup.
notient setupwrites config and doctor reportnotient searchquick lexical mode needs no modelnotient historyinspects journaled changesnotient undorestores original note bytes
MCP for Agents
32 Model Context Protocol tools connecting Claude Code, Codex, and other orchestrators to your vault with strict authority boundaries.
- Agents propose changes and ask for human review
- Agents cannot approve their own changes
- Missing evidence forces structured abstention
- Untrusted note content cannot issue tool commands
Obsidian Desktop Companion & Local SDK
A native desktop sidebar that protects active editor buffers from daemon writes while maintaining raw-byte fidelity across byte-order marks and CRLF line endings. Connects over loopback HTTP with single-use pairing codes. Four selection commands debut in version 0.1.0:
- Ask about selection: A grounded question about the selected passage, answered from its note.
- Brief from selection: A cited brief from the saved revision, focused on the passage.
- Find connections for selection: Discovers evidence-backed connections to related notes.
- Propose an edit to the selection: Stages an exact before and after preview in Review without touching disk.
Typed Client
The notient/sdk package export provides runtime-validated TypeScript bindings for all vault operations and pipelines.
A real run: finding a contradiction between two notes.
This is excerpted, otherwise unedited output from the Find contradictions pipeline, run on 17 September 2026 against a locally hosted qwen3.8-27b on two synthetic notes from the project's evaluation pack. It took 122 seconds, most of it reasoning. Both quotations resolved byte for byte in the recorded revisions, and the result was staged as a review, not written.
Projects/Guarantee.md · line 3 For the 2026-09-16 production cluster, every acknowledged write survives the loss of any one replica, even if replication was not complete.
Projects/Loss.md · line 3 For the same 2026-09-16 production cluster, an acknowledged write can be lost when one replica fails before replication completes.
Projects/Loss.md · line 3 This describes the same current configuration as [[Projects/Guarantee]].
“Projects/Guarantee.md and Projects/Loss.md make incompatible claims about the same production cluster on the same date under the same failure condition. […] This is a direct contradiction rather than a temporal change or difference in assumptions.”
The evaluation recorded passes and failures together. Three of twenty-two runs exhausted their reasoning budget. One synthesis joined two unrelated notes before its instruction was corrected. Those results remain recorded in the project ledger.
| Operation | Measured Duration & Scope |
|---|---|
ask on small vault |
15.6 s to 16.3 s with exact citations |
ask on 961-note vault |
31.7 s across 895 indexed notes |
brief from a note |
30.8 s (2-note vault) to 69.0 s (selection, 2 sources) |
| Connections for selection | 110.2 s (two-sided evidence resolution) |
| Pipelines (Enrich / Contradict / Relate) | 60 s to 120 s (enrich), 122 s (contradiction), 213 s (relate up to 3.5 min) |
The Seven Built-in Workflows
All background workflows are disabled on fresh installations. Enabled workflows operate under explicit scopes and resource budgets.
Concepts, claims and open questions, each tied to its passage. Never edits a note.
Tags, aliases and a summary that extend what you wrote without replacing it.
A specific, directed connection supported by quotations from both notes.
Genuine conflicts, kept apart from changes over time and differing assumptions.
A cited draft or map of content from complementary sources, created as a new note.
Routing for substantive captures. Unrelated fragments stay where they are.
Finished or superseded notes, with reference-aware moves. Age alone is never a reason.
Know exactly where a sentence of yours can travel.
Notient ships no hosted service and no telemetry. What leaves your machine depends on two choices that are yours, and they are separate.
Note content is treated as untrusted data everywhere. Text inside a note can never grant a permission, approve a change or issue a tool command.
Prompts and note excerpts go to an OpenAI-compatible endpoint on this machine or on a network you operate: llama.cpp, LM Studio, Ollama, vLLM and others.
Supported when you configure one deliberately. That provider then receives the prompts, excerpts, images or embeddings Notient sends for inference.
Claude Code, Codex or another host receives whatever note content its tool calls request and handles it under that vendor's policy, whichever model Notient itself uses.
Scoped credentials from a single-use pairing code, revocable at any time. Agents can ask for a review. They cannot approve one.
From the GitHub release.
# Download, verify and install the release package
curl -LO https://github.com/akougkas/notient/releases/download/v0.1.0/notient-0.1.0.tgz
curl -LO https://github.com/akougkas/notient/releases/download/v0.1.0/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
bun add --global "$PWD/notient-0.1.0.tgz"
notient --version
# Build from source and register on PATH
git clone https://github.com/akougkas/notient.git && cd notient
bun install --frozen-lockfile && bun run build && bun link
# Guided setup: writes settings, one model endpoint, then prints a read-only health report notient setup /path/to/your/vault # Open the terminal workspace notient --vault /path/to/your/vault
Obsidian Desktop Companion (v0.1.0)
Download notient-obsidian-0.1.0.zip from the release. Extract its notient/ folder into .obsidian/plugins/, enable the plugin in Obsidian settings, and pair the vault from your terminal:
notient pair create --vault /path/to/your/vault \ --label "Obsidian desktop" --kind human --scopes read,write,host
The plugin is distributed directly as an archive and is not in the Obsidian community directory.
bun run release:check. Notient is not published on npm.
Read the contracts, not a brochure.
Every interface, schema and operational rule is documented in the repository. The integration suite runs against real daemons in continuous integration, and the OpenAPI document is checked against the running catalog.
Setup, models, the daemon, backups and recovery procedures.
API v1 & PipelinesEvery operation, its authority level and the typed notient/sdk client.
Generated directly from the catalog the daemon validates with.
MCP for AgentsConnect Claude Code, Codex and other hosts to a vault.
Obsidian CompanionPairing, editor protection, raw byte handling and native review.
Release StatusFull verification results: what passed, what failed and what is unverified.