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.

0.1.0 is the first public release on GitHub. It is early software with stated limits: Linux and WSL are the exercised platforms, local-model latency applies, and the Obsidian plugin installs from a ZIP archive.
notient / demo-vault Review · ready
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
i How it works

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.

ii Unified Surfaces

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.

Surface 1

Terminal Workspace

Keyboard-first interactive TUI with persistent conversations, rendered Markdown, exact source navigation, recoverable drafts, and reviewed changes.

  • Ctrl+P opens the menu
  • Ctrl+B captures a thought
  • Ctrl+O switches conversations
  • Ctrl+S saves an answer
Surface 2

Command Line CLI

Direct terminal operations for search, structured Q&A, briefs, correlation, history inspection, and guided setup.

  • notient setup writes config and doctor report
  • notient search quick lexical mode needs no model
  • notient history inspects journaled changes
  • notient undo restores original note bytes
Surface 3

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
Surface 4 & 5

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.
Developer SDK

Typed Client

The notient/sdk package export provides runtime-validated TypeScript bindings for all vault operations and pipelines.

iii Demonstration

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]].
contradiction · proposed edge: contradicts

“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.

Measured Real-Model Latency (qwen3.8-27b on LAN Host) Sequential Runs
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.

Index and extract Analysis

Concepts, claims and open questions, each tied to its passage. Never edits a note.

Enrich Metadata

Tags, aliases and a summary that extend what you wrote without replacing it.

Relate Graph

A specific, directed connection supported by quotations from both notes.

Find contradictions Integrity

Genuine conflicts, kept apart from changes over time and differing assumptions.

Synthesize Generation

A cited draft or map of content from complementary sources, created as a new note.

Process inbox Organization

Routing for substantive captures. Unrelated fragments stay where they are.

Review for archive Lifecycle

Finished or superseded notes, with reference-aware moves. Age alone is never a reason.

iv Data boundaries

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.

Local inference Reference Setup

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.

A cloud endpoint Optional Choice

Supported when you configure one deliberately. That provider then receives the prompts, excerpts, images or embeddings Notient sends for inference.

An MCP host Separate Boundary

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.

Paired HTTP Loopback Only

Scoped credentials from a single-use pairing code, revocable at any time. Agents can ask for a review. They cannot approve one.

v Install

From the GitHub release.

You need Bun 1.4.2 or newer and SurrealDB 3.0.5 on your PATH. Linux and WSL are exercised; macOS is unverified on a real host and a native Windows daemon is unsupported. A model endpoint is optional for reading and lexical search.

Download and install verified release package
# 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
Or build from repository source
# 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 vault setup and workspace launch
# 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:

Terminal pairing command
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.

Release v0.1.0 carries the package, the plugin archive, the OpenAPI document, installation notes and SHA-256 checksums. Those exact artifacts were verified from a clean install by bun run release:check. Notient is not published on npm.
vi Documentation

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.