LLM-compiled knowledge base: ingest papers, notebooks and data, and distill them into an interlinked org-mode wiki with a searchable graph database. Includes a crucible agent skill for Claude Code and
翻譯準備中
技能Python · HTMLGitHub @jkitchin自行安裝營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
LLM-compiled knowledge base: ingest papers, notebooks and data, and distill them into an interlinked org-mode wiki with a searchable graph database. Includes a crucible agent skill for Claude Code and other agents.
翻譯準備中
正在載入完整 README。
檢視完整 README ↗#+TITLE: Crucible: LLM-Compiled Knowledge Base #+AUTHOR: John Kitchin #+DATE: [2026-04-03 Fri]
[[./crucible.png]]
Crucible is a personal knowledge base system where primary sources (papers, notebooks, data) are ingested and distilled by an LLM into a structured, interlinked org-mode wiki. The wiki is the LLM's domain: you rarely edit it directly. Instead, you converse with Claude, and it reads, writes, and maintains the wiki on your behalf.
The core idea, inspired by Andrej Karpathy's LLM knowledge base pattern, is that raw data from various sources is collected, then compiled by an LLM into a wiki of org-mode files, then operated on by various CLI commands to do Q&A and to incrementally enhance the wiki. Everything is viewable in Emacs via scimax.
Key design principles:
From PyPI:
#+BEGIN_SRC bash pip install crucible-llm #+END_SRC
Or from source for development:
#+BEGIN_SRC bash git clone https://github.com/jkitchin/crucible.git cd crucible pip install -e . #+END_SRC
Then initialize a new crucible project and wire it into Claude Code:
#+BEGIN_SRC bash cd /path/to/your/project crucible init --root . crucible install # installs Claude Code skill + CLAUDE.md directive #+END_SRC
The =install= command does three things:
=init= registers the project and installs the skill, but only =install= writes the =~/.claude/CLAUDE.md= directive. There is one directive, so a new crucible does not take it over until you run =install= in it.
To remove: =crucible uninstall=.
** Installing the skill with knowhow
The skill lives in =skills/crucible/SKILL.md= and follows the [[https://agentskills.io/specification][Agent Skills specification]], so it can also be installed with [[https://github.com/jkitchin/knowhow][knowhow]] (or =npx skills=) for Claude Code and other agents (VS Code, Codex, OpenCode, Gemini CLI, Cursor):
#+BEGIN_SRC bash uvx knowhow add jkitchin/crucible --skill crucible # this project uvx knowhow add jkitchin/crucible --skill crucible -g # global
#+END_SRC
The skill still needs the =crucible= CLI on your PATH. Installing it this way does not generate the manifest or the =~/.claude/CLAUDE.md= directive, so run =crucible install= inside your project if you want those too. Contributors can check the skill with =uvx knowhow validate .=.
For semantic search, you also need ollama running with an embedding model:
#+BEGIN_SRC bash ollama pull nomic-embed-text crucible embed #+END_SRC
A crucible project keeps everything in a =.crucible/= directory at its root:
#+BEGIN_EXAMPLE your-project/ .crucible/ CLAUDE.md Conventions for agents working in the wiki .gitignore Excludes crucible.db and sources/external/ crucible.db Wiki graph database (SQLite, regenerable) references.bib Bibliography of ingested sources sources/ external/ Copyrighted material (gitignored) pdfs/ Academic papers, reports web/ Web clippings notebooks/ Your own ELN entries (shareable) data/ Your own experimental data (shareable) wiki/ index.org Auto-generated master index MANIFEST.md Summary for agent discovery concepts/ One topic per file summaries/ One per ingested source comparisons/ Cross-source analysis methods/ Technique and methodology articles #+END_EXAMPLE
The global registry of all crucibles on the machine is
=/.crucible/registry.json=. Because =/.crucible/= is the registry, the
home directory itself cannot be a crucible project.
This repository holds the Python package (=src/crucible/=), the agent skill (=skills/crucible/SKILL.md=, Agent Skills spec), the documentation (=docs/=) and the tests (=tests/=).
See [[file:docs/tutorial.org][the tutorial]] for a complete walkthrough. The short version:
#+BEGIN_SRC bash
crucible ingest paper.pdf
curl -sL "URL" | pandoc -f html -t org | crucible ingest - -t "Title" --type web
crucible ingest "papers/*.pdf"
crucible sync
crucible embed
crucible search "activation energy" # hybrid (auto) crucible search "how does temperature affect rate" # finds by meaning crucible search "catalyst" --mode fts # keyword only
crucible concepts # list all topics crucible concept thermodynamics # articles on a topic crucible backlinks wiki/concepts/activation-energy.org crucible related wiki/concepts/activation-energy.org crucible history wiki/comparisons/synthesis.org # derivation chain
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗