
Research
Shai-Hulud Descends to Hades: Miasma Worm Campaign Spreads with New PyPI Wave
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.
llmwiki-cli
Advanced tools
A CLI tool for LLM agents to build and maintain personal knowledge bases.
Inspired by Andrej Karpathy's LLM Wiki.
Live Demo — interactive d3-force graph built from the example wiki in test-wiki-page/.
The CLI is the hands -- it reads, writes, searches, and manages wiki files. The LLM is the brain -- it decides what to create, update, and connect.
LLM Agent (Claude Code / Codex)
|
| shells out to:
| $ wiki init my-wiki --name "Notes" --domain "machine learning"
| $ wiki write wiki/concepts/attention.md <<'EOF' ... JSON ... EOF
| $ wiki delete wiki/concepts/old.md
| $ wiki search "scaling laws"
| $ wiki lint
|
v
wiki CLI (StorageProvider → local markdown files)
Key principle: The CLI never calls any LLM API. It reads and writes markdown on disk only (no built-in Git sync or cloud backends).
AI assistants / coding agents: Use CLAUDE.md for instructions, rules, and technical context. This README stays oriented to people (overview, install, usage).
npm install -g llmwiki-cli
This gives you two commands: wiki (primary, 4 chars) and llmwiki (fallback if wiki conflicts).
# Create a new wiki
wiki init my-wiki --name "My Notes" --domain "research"
# Write a page (JSON on stdin → YAML frontmatter + body; index updated automatically)
wiki write wiki/concepts/attention.md <<'EOF'
{
"title": "Attention Mechanism",
"tags": ["transformers", "NLP"],
"content": "The attention mechanism allows models to focus on relevant parts of the input.\nSee also [[transformers]] and [[self-attention]]."
}
EOF
# Search and lint
wiki search "attention"
wiki lint
When you run wiki init, it creates:
my-wiki/
├── .llmwiki.yaml # Wiki config
├── SCHEMA.md # Instructions for LLM agents
├── raw/ # Immutable source documents
│ └── assets/ # Downloaded images
└── wiki/ # LLM-generated pages
├── index.md # Master index (updated by wiki write / delete)
├── entities/ # People, orgs, products
├── concepts/ # Ideas, frameworks, theories
├── sources/ # One summary per ingested source
└── synthesis/ # Cross-cutting analysis
Use normal Git in my-wiki/ if you want version control. The CLI does not run git init for you.
All markdown pages are stored directly under the wiki root (no profiles/<slug>/ indirection).
wiki init [dir] --name <name> --domain <domain> # Create wiki (local files only)
wiki registry # List all wikis
wiki use [wiki-id] # Set active wiki
wiki read <path> # Print page markdown to stdout
wiki write <path> # JSON on stdin → frontmatter + body; upserts wiki/index.md for wiki/* paths
wiki delete <path> # Delete page + remove from index
wiki list [dir] [--tree] [--json] # List pages
wiki search <query> [--limit N] [--all] [--json] # Search pages
wiki lint [--json] # Health check
wiki links <path> # Outbound + inbound links
wiki backlinks <path> # Inbound links only
wiki orphans # Pages with no inbound links
wiki status [--json] # Wiki overview stats
Run wiki skill to print the full guide. The canonical text lives in src/commands/skill.ts (SKILL_GUIDE); update it when commands change. Covers workflows, command patterns, page format, and common gotchas for LLM agents.
The generated SCHEMA.md in each wiki contains complete instructions. Here are the typical workflows:
# Save raw source (JSON body — large string in "content")
wiki write raw/paper.md <<'EOF'
{"title":"Paper — full text","content":"<paste full text of paper>"}
EOF
# Create structured summary (index line uses title)
wiki write wiki/sources/attention-paper.md <<'EOF'
{
"title": "Attention Is All You Need",
"tags": ["transformers", "attention", "NLP"],
"source": "https://arxiv.org/abs/1706.03762",
"content": "Summary of the attention paper...\nLinks to [[transformers]] and [[self-attention]]."
}
EOF
wiki search "attention mechanism"
wiki read wiki/concepts/attention.md
wiki links wiki/concepts/attention.md # see related pages
wiki lint # find broken links, orphans, missing frontmatter
wiki orphans # pages nobody links to
wiki status # overview stats
The CLI does not scaffold Git or Actions during wiki init. If you want the same interactive d3-force graph as the live demo:
git init, add remote, etc.)..github/workflows/wiki-viz.yml — source string: getVizWorkflow() in src/lib/templates.tsscripts/build-graph.js and scripts/build-site.js — getBuildGraphScript() / getBuildSiteScript() in the same filebun scripts/generate-viz-scripts.ts [outDir] (writes build-graph.cjs / build-site.cjs; rename to .js if you prefer).The workflow parses [[wikilinks]] on each push and publishes the graph site.
The CLI supports multiple wikis via a global registry at ~/.config/llmwiki/:
wiki init ~/wikis/ml --name ml --domain "machine learning"
wiki init ~/wikis/personal --name personal --domain "personal notes"
wiki registry # lists both
wiki use ml # switch active wiki
wiki --wiki personal read wiki/index.md # target specific wiki
wiki search "neural networks" --all # search across all wikis
Wiki resolution order: --wiki flag > cwd .llmwiki.yaml > walk up directories > registry default.
git clone https://github.com/doum1004/llmwiki-cli
cd llmwiki-cli
bun install
bun test # run full test suite
bun run build # bundle to dist/index.js
bun run dev -- --help
MIT
FAQs
CLI tool for LLM agents to build and maintain personal knowledge bases
We found that llmwiki-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Socket found 37 malicious PyPI wheels that abuse Python startup hooks to launch a Bun-powered credential stealer tied to Mini Shai-Hulud/Miasma.

Security News
RubyGems and Bundler 4.0.13 introduced an opt-in cooldown feature that delays newly published gems during dependency resolution.

Security News
pnpm 11.5 now recognizes npm staged publish approvals in release metadata, preventing those releases from being mistaken for lower-trust package publishes.