Hallouminate Nightly
БесплатноНе проверенEXPERIMENTAL rolling build of paulnsorensen/hallouminate off main — NOT the official `hallouminate` package
Описание
EXPERIMENTAL rolling build of paulnsorensen/hallouminate off main — NOT the official hallouminate package
README
CI crates.io License: MIT Latest release OpenSSF Scorecard Conventional Commits Agent Skills PRs welcome Buy Me a Coffee
Stop hallucinating. Start hallouminating.
"The wiki must flow."
A markdown corpus indexer for LLMs to build and query their own per-repo
wikis. Hallouminate stores markdown verbatim on disk, embeds it with
fastembed, indexes the embeddings in LanceDB, and exposes a small MCP
surface (add_markdown / read_markdown / delete_markdown / ground)
so an LLM can author and search a per-repo knowledge base without
leaving its agent loop.
The filesystem is the source of truth; LanceDB rows are derived and
refreshed automatically when an LLM writes via add_markdown, or in
bulk via hallouminate index. Code files (.rs, .toml, …) can also
be indexed as text for semantic search, but hallouminate does no
structural analysis — it's a wiki indexer that happens to tolerate
code, not a code intelligence tool.
A long-lived local daemon owns the LanceDB ground directory, per-corpus mutation locks, and config resolution. The CLI and the stdio MCP server both talk to it over a Unix domain socket — one owner, no cross-process LanceDB races.
📖 Full documentation: https://cheeselord.dev/hallouminate/
Install
The default install is a prebuilt binary — no Rust toolchain, no protoc:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/paulnsorensen/hallouminate/releases/latest/download/hallouminate-installer.sh | sh
Prebuilts cover Apple-silicon macOS (aarch64-apple-darwin) and x86_64 /
aarch64 Linux (glibc ≥ 2.39). Re-run the one-liner any time to upgrade.
Alternatives, in cascade order:
cargo binstall hallouminate # same prebuilts, via dist-manifest.json
cargo install hallouminate --locked # source build — needs Rust + protoc
Source builds need protoc (the lancedb build dependency:
brew install protobuf / apt install protobuf-compiler); from a git
checkout, cargo build --release lands the binary at
target/release/hallouminate.
Intel macOS and older-glibc Linux have no prebuilt (ort/ONNX Runtime ships
no Intel-mac build — pykeio/ort#556); use the source build there. Windows
is unsupported — the daemon is Unix-only (Unix domain socket + flock);
see #48.
Verify with hallouminate --version.
Per-harness setup
The MCP server is always hallouminate serve over stdio. Install the shared
plugin pack through the harness-native route:
| Harness | Install the plugin / skills | MCP registration |
|---|---|---|
| Claude Code | /plugin marketplace add paulnsorensen/hallouminate → /plugin install hallouminate@hallouminate |
Bundled .mcp.json; user fallback: claude mcp add hallouminate --scope user -- hallouminate serve |
| Codex | codex plugin marketplace add paulnsorensen/hallouminate, restart, then codex plugin add hallouminate@hallouminate (or install from /plugins) |
Bundled .mcp.json |
| Copilot CLI | copilot plugin marketplace add paulnsorensen/hallouminate → copilot plugin install hallouminate@hallouminate |
Bundled .mcp.json |
| OMP | /marketplace add paulnsorensen/hallouminate → /marketplace install hallouminate@hallouminate |
Bundled Claude-compatible .mcp.json |
| Cursor | Teams/Enterprise: import https://github.com/paulnsorensen/hallouminate under Plugins → Team Marketplaces. Local: clone, copy or symlink plugins/hallouminate to ~/.cursor/plugins/local/hallouminate, then reload/restart Cursor. |
Bundled .mcp.json through the Cursor manifest |
| Gemini CLI | From a checkout: gemini extensions install ./plugins/hallouminate --consent. From an extracted release archive: gemini extensions install ./hallouminate-skills-<version>/plugins/hallouminate --consent. |
Inline in gemini-extension.json; bundled skills are auto-discovered |
| opencode | Copy plugins/hallouminate/skills/ to ~/.config/opencode/skills/ |
Add { "mcp": { "hallouminate": { "type": "local", "command": ["hallouminate", "serve"] } } } to opencode.json |
First run
hallouminate config init— scaffold the XDG baseline config.hallouminate init-repo <name>in your repo — seed.hallouminate/config.tomlplus the wiki skeleton; the wiki becomes therepo:<name>:wikicorpus. Identical on every harness.hallouminate index— build the index (auto-spawns the daemon and downloads the embedding model on first use).hallouminate ground "<a question your wiki answers>"— prove the loop.
Usage
hallouminate serve starts the stdio MCP server (auto-spawning the daemon if
none is running) — this is what an MCP client launches:
hallouminate serve
Install
# Prebuilt binary, no Rust toolchain required:
npx hallouminate --help
# Or from crates.io:
cargo install hallouminate
The npm package is a thin shim — its postinstall step downloads the matching prebuilt binary for your platform from the GitHub release.
From a source checkout, run subcommands through cargo:
cargo run -- serve # stdio MCP server
cargo run -- index # bulk (re)index every configured corpus
cargo run -- ground "how does the daemon work" # CLI semantic search
cargo run -- config show # print the effective merged config
MCP
hallouminate serve starts a stdio MCP server. Tools:
ground— semantic search.index— bulk (re)build a corpus index.corpus_stats— index health for one corpus: indexed file count, total chunk rows, newest index timestamp, and unindexed-file count.list_corpora— list every configured corpus.list_files— flat list of relative paths in a corpus.list_tree— the same files grouped into a directory tree, for progressive disclosure without reading everyindex.md.add_markdown— write a markdown file under the corpus' first root, atomic and no-symlink-follow, with auto-reindex of just that file. Returns advisory lintwarnings(empty-destination links, empty mermaid blocks, heading-level jumps) without blocking or rewriting the content.read_markdown— verbatim UTF-8 file contents. Use before overwriting.delete_markdown— unlink the file and prune its rows from the index.get_footnote— resolve a single citation: the footnote target for a page's#footnote_number.
Markdown content is stored verbatim — hallouminate imposes no schema.
Convention for LLM wiki authors: one topic per file, first line # Title,
file stem matches the slug.
Config
The config lives at $XDG_CONFIG_HOME/hallouminate/config.toml
(~/.config/hallouminate/config.toml by default).
hallouminate config init— scaffold a baseline config.hallouminate config show— print the effective merged config for the current working directory (baseline + repo layer).hallouminate config validate— parse and flag unknown top-level keys.hallouminate config download— pre-fetch the configured embedding model so the firstindexdoesn't pay the download cost.
Cross-repo union search
ground (and the read/list tools) resolve corpora relative to the caller's
working directory:
- Inside a repo — the request defaults to that repo's
repo:<name>:wiki. - Above all repos (e.g.
cd ~/Dev) — agroundcall with no explicitcorpussearches the union of every effective corpus: discovered sub-repo wikis + baseline-registered[[repository]]wikis, plus user-declared[[corpus]]entries and each repository'srepo:<name>:corpussource corpus when configured. The results are merged and re-ranked into one response, and each hit is attributed to its source corpus (file-levelcorpusplus per-chunkprovenance.corpus).
The downward walk is bounded: it honours .gitignore, skips hidden
directories (except .hallouminate itself), caps its depth, and never scans
above the working directory. Walk-discovered wikis are deduped against the
baseline by resolved path; a discovered local config that collides with a
baseline repository of the same name wins, with a cross-repo-union warning
on the response rather than a silent shadow.
Passing an explicit corpus always pins the search to that one corpus,
unchanged. Writes (add_markdown / delete_markdown) still require an
explicit single-root corpus — the multi-root union is read- and search-only.
How the daemon works
A long-lived local daemon owns the LanceDB ground directory, the repository registry, and per-corpus mutation locks. The CLI and the stdio MCP server are thin clients that talk to it over a Unix domain socket.
- Auto-spawn —
hallouminate serve,index, andgroundstart a detached daemon automatically when none is listening; there is nothing to start by hand. - Socket resolution order —
HALLOUMINATE_SOCKET(explicit full-path override; setting it also disables auto-spawn — the caller owns the daemon lifecycle), else$XDG_RUNTIME_DIR/hallouminate/daemon.sock, else~/.cache/hallouminate/daemon.sock. - Lifecycle —
hallouminate daemon status/stop/restart; barehallouminate daemonruns it in the foreground. Only one instance per socket can run (flock-guarded). - Version-skew respawn — after a binary upgrade, the next client pings the running daemon and compares versions; a mismatch stops the stale daemon and spawns a fresh one. No manual restart needed after upgrades.
- Diagnostics — anything the auto-spawned daemon emits before its logger
is up (panics, early config errors) lands in
~/.local/state/hallouminate/daemon-bootstrap.log($XDG_STATE_HOME). - Process logs —
$XDG_STATE_HOME/hallouminate/hallouminate.log(default~/.local/state/hallouminate/hallouminate.log) rotates exactly at 10 MiB into numbered archives and retains at most 100 MiB. Configure[logging].max_file_bytes/max_total_bytes, or override them withHALLOUMINATE_LOG_MAX_FILE_BYTES/HALLOUMINATE_LOG_MAX_TOTAL_BYTES.[watch].failure_reminder_secsdefaults to 60 seconds; override it withHALLOUMINATE_WATCH_FAILURE_REMINDER_SECSor set0to disable suppression. - Windows — the daemon model is Unix-only; see #48.
FAQ
How do I turn embeddings off?
Dense embeddings are on by default, using the
snowflake/snowflake-arctic-embed-s model. On first index hallouminate
downloads that model and fuses its vector signal with lexical search.
To run lexically only — full-text search + ripgrep + rerank, no embedding
model downloaded (just the tokenizer used for chunking) — set enabled = false
in ~/.config/hallouminate/config.toml:
[embeddings]
enabled = false
Changing the embedding mode (or model) for a ground directory that was already
indexed under a different mode trips the store's mismatch guard on the next
run. Delete the ground directory and re-run hallouminate index to rebuild:
rm -rf ~/.local/share/hallouminate/ground
hallouminate index
Which embedding models are supported?
Set embeddings.model in your config to one of these (all embed to 384-dim
vectors). Omitting embeddings.model selects the default.
| Model | Notes |
|---|---|
snowflake/snowflake-arctic-embed-s |
Default. English, symmetric retrieval. |
BAAI/bge-small-en-v1.5 |
English, symmetric retrieval. |
intfloat/multilingual-e5-small |
Multilingual, asymmetric retrieval; no quantized variant. |
Skill pack
A cross-harness plugin pack ships in this repo under
plugins/hallouminate: skills for installing
hallouminate and authoring wikis, plus MCP registration for each supported
plugin format. Claude Code and OMP use .claude-plugin/marketplace.json,
Codex uses .agents/plugins/marketplace.json, Copilot CLI uses the payload's
root plugin.json, Cursor uses .cursor-plugin/, and Gemini CLI uses
gemini-extension.json — see the install matrix.
tests/plugin_manifests.rs pins every manifest to the crate version, and the
release-skills workflow publishes versioned plugin-pack archives on every
v* release tag.
License
MIT — see LICENSE.
Установить Hallouminate Nightly в Claude Desktop, Claude Code, Cursor
unyly install hallouminate-nightlyСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add hallouminate-nightly -- npx -y @paulnsorensen/hallouminate-nightlyFAQ
Hallouminate Nightly MCP бесплатный?
Да, Hallouminate Nightly MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Hallouminate Nightly?
Нет, Hallouminate Nightly работает без API-ключей и переменных окружения.
Hallouminate Nightly — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Hallouminate Nightly в Claude Desktop, Claude Code или Cursor?
Открой Hallouminate Nightly на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Hallouminate Nightly with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
