Skip to main content

LITerature MANager


LITMAN

PyPI version Python 3.12+ License: MIT AI-native: Claude Code

English | 中文

Local-first, AI-augmented literature manager.

A local knowledge base for research papers, stored as plain files on your disk. Papers link explicitly to projects, code repositories, and each other through structured metadata and symlinks. Use it through a web UI for everyday browsing, reading, and annotation — and, for anything the UI doesn't cover, run the lit CLI yourself, or ask an AI agent to drive it for you via the bundled Claude Code skills.


Know before you use

A few things worth knowing up front:

  1. Don't move a vault or project folder by hand. The symlinks, project bridges, and registry that hold it together are path-based; if you must move one, run lit health-check afterward to repair what broke.
  2. Figure/table reading needs a multimodal model. A text-only model falls back to plain-text extraction and can't see figures or image-based tables.
  3. Don't edit metadata files by hand. Change papers, taxonomy, and config through the web UI or your AI agent — both go through validated lit commands.
  4. Windows users. Symlink features (browsing views, project bridges) need administrator privileges; WSL is recommended.

Key Features

  1. Plain files you own. Your whole library is plain text on disk — YAML metadata, markdown notes, original PDFs. No cloud database, no lock-in: back it up anywhere, grep the lot.

  2. Consistent by design. A shared TAXONOMY.md governs topics, methods, projects, and sources; atomic writes plus lit health-check keep cross-references clean as the library grows.

  3. Paper ↔ project ↔ code. Bind one paper to many projects (each gets a symlinked folder and an auto-generated REFERENCES.md) and to its cloned code repo — an explicit knowledge graph with no manual upkeep.

  4. Web UI + AI agent over one validated core. Browse, read, and annotate in the web UI (lit gui); for anything more, ask Claude Code in plain English and the bundled lit-library / lit-reading skills drive the full CLI. Every write is validated, so the library stays correct even when the model isn't.


Install

litman is a Python CLI tool. Install with pipx so lit is permanently available in every shell, isolated from your other Python environments. Don't have pipx? See pipx.pypa.io.

From PyPI (recommended):

pipx install litman   # first install
pipx upgrade litman   # update

From a local clone (development):

# first install
git clone https://github.com/wqx1999/litman.git
cd litman
pipx install .

# update (pull latest code first)
git pull
pipx install --force .

Then run the one-shot setup wizard:

lit setup   # interactive wizard: shell completion → Claude Code skill → vault setup → (optional) cloud sync

Uninstall

Run two steps, in order — lit uninstall first (while the lit command still exists), then pipx:

lit uninstall          # removes bundled skills, shell completion, and the vault registry
pipx uninstall litman  # removes the lit CLI itself

lit uninstall lists exactly what it will delete and asks first — pass --dry-run to preview or -y to skip the prompt.

If you installed from a local clone, also delete the cloned repo folder once the CLI is gone:

rm -rf path/to/litman   # the directory you git-cloned into

Your vault (papers, PDFs, notes, annotations) is never touched by any of this; delete that directory by hand if you also want the data gone.

Quick start

lit gui   # open the web UI — browse, read, annotate, tag, and link papers

That's it — lit setup already created your vault. The web UI handles everyday browsing, reading, and annotation; for anything more (adding papers, taxonomy edits, project links), ask your Claude Code agent in natural language or see the command reference.


Agent model benchmark

litman's agent layer (the bundled lit-library and lit-reading skills) is meant to work with whatever model you point Claude Code at, not only Anthropic's. To see how well different models drive it, we ran each one as the Claude Code backend and had it operate litman through the skills, over 22 everyday-workflow tasks (add, read, tag, modify, link, export, taxonomy edits, health checks, ...), 3 rounds each, on the litman 1.0.0 codebase (commit 876d11c, June 2026).

What the score is. Each task is a single-turn prompt in a clean context: a fresh agent gets one natural-language instruction and must complete it in that one turn, with no prior conversation and no follow-up. TRR (task-completion rate) is the fraction of tasks the resulting vault state passed; RA (routing accuracy) is how often the agent picked the correct skill for a request.

A low score does not mean the model cannot operate litman. It means the model less often one-shots the task from a cold start. With more guidance (a more detailed request, or a few follow-up turns) a lower-scoring model can still do the same work. This is a deliberately hard zero-shot floor, not a ceiling.

Model Task completion (TRR) Routing (RA)
Claude Sonnet 4.6 97% 100%
Claude Haiku 4.5 97% 79%
DeepSeek-V4 Flash 80% 71%
DeepSeek-V4 Pro 76% 57%
MiniMax-M3 71% 75%
GLM-5.1 58% 64%
MiMo-V2.5 Pro 26% 0%
MiMo-V2.5 21% 0%

TRR is the mean over the 22 auto-scored tasks across 3 rounds; network-dependent and multi-turn scenarios (code cloning, cloud sync, a multi-turn recovery case) are excluded from this single-turn score. Whatever the model scores, the data layer validates every write — a wrong command fails loudly rather than writing bad data into the vault, so a lower-scoring model needs more turns but never corrupts the library.


Documentation

Full documentation lives under docs/. New to litman? The tutorial covers about 80% of everyday use; for anything else, ask the agent or check the command reference. docs/0-readme.md maps out the whole set.

Topic File
Start here — docs map docs/0-readme.md
Design philosophy docs/1-philosophy.md
Four-layer architecture docs/2-architecture.md
Concepts and field reference (metadata.yaml, lit-config.yaml, TAXONOMY.md) docs/3-concepts.md
Command reference docs/4-commands.md
Tutorial docs/5-tutorial.md

Local-preview the docs as a static site:

pip install mkdocs mkdocs-material
mkdocs serve

Acknowledgments

This tool was developed in the Süssmuth Lab, Technische Universität Berlin. Development was carried out with access to the TU Berlin HPC cluster.

This project was built with the help of AI-powered development tools:

Claude Code Cursor

Core dependencies that make litman possible:

Click ruamel.yaml pypdf Pydantic Rich httpx

Cloud sync (lit sync) is powered by rclone, the external CLI that mirrors the vault to any cloud backend it supports — the backbone of how a vault gets backed up and moved between machines:

rclone

Octopus mascot generated with Doubao (AI image generation).

License

MIT. See LICENSE.


AI agents: a condensed, link-dense map of this project lives in README-Agent.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

litman-1.1.0.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

litman-1.1.0-py3-none-any.whl (1.6 MB view details)

Uploaded Python 3

File details

Details for the file litman-1.1.0.tar.gz.

File metadata

  • Download URL: litman-1.1.0.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for litman-1.1.0.tar.gz
Algorithm Hash digest
SHA256 1c61f3208a9bccbbd189900da19d3499dc181dac922f9eb10c3bdf7727e31af1
MD5 af3f1bc489e7884646bf1330d523e933
BLAKE2b-256 1a0012a41ad6d6f669e8a474445e23267536497b191f238a5e6dd709e6b22ddd

See more details on using hashes here.

File details

Details for the file litman-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: litman-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for litman-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 75947c171811ae1cff6c782fbfcbfc4d5377a77309acd4a5839518e84b701ff3
MD5 993395a2711a9519d70176d62feed5b0
BLAKE2b-256 6303523f3a21f49eca5cb2af1b673eeba3dcf68bbed825ee8b5afc6e098a65c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page