Turn what you know into testable AI steps. Chain them into workflows. Measure whether they work. Scale when ready.
pip install loom-ai[workshop] # install from PyPI
loom setup # configure (auto-detects Ollama)
loom workshop # open web UI at localhost:8080Open your browser → pick a worker (summarizer, classifier, extractor) → paste any text → click Run. No data files needed.
Have Telegram exports? Install with pip install loom-ai[rag] instead,
then run loom rag ingest, loom rag search, and loom rag serve for
full social media stream analysis.
Or from source:
git clone https://github.com/IranTransitionProject/loom.git && cd loom
uv sync --extra workshop
uv run loom setupNo servers to run. No configuration files to write. The setup wizard handles everything.
Most AI tools give you one big prompt and one model. That works until it doesn't — the prompt gets unwieldy, you can't test parts independently, and asking the same model to review its own work doesn't catch real problems.
Loom splits AI work into focused steps. Each step has a clear job, a typed contract (so you know what goes in and what comes out), and can use a different model. You test steps individually, chain them into pipelines, and measure whether changes help or hurt.
Document ──► Extract ──► Classify ──► Summarize ──► Report
│ │ │
│ │ └─ Claude Opus (complex reasoning)
│ └─ Ollama local (fast, free)
└─ Ollama local (fast, free)
Steps run in parallel when they can, and are tested with the built-in Workshop web UI — all without deploying any infrastructure. When you're ready to scale, Loom adds a message bus (NATS) that connects everything for production use.
The key idea: the bottleneck with AI is never the model's knowledge — it's your ability to give it clear, precise instructions. Loom makes those instructions testable, version-tracked, and composable. The deeper argument for this approach is in Why Loom?.
Anyone hitting the limits of single-prompt AI. Whether you're a student comparing how different models answer questions, a teacher grading essays and checking for bias, or a city clerk categorizing public comments — if you need more than one AI step working together, Loom gives you a structured way to build that. Start with the six shipped workers in Workshop. No coding needed.
Researchers and analysts — process documents, extract data, build analytical pipelines. Define your own workers in YAML, test them in Workshop, iterate until the output matches your judgment. Loom's knowledge silos and blind audit pattern let you get genuine adversarial review of AI-generated analysis — not the pseudo-review you get when the same model checks its own work.
AI engineers — build multi-step LLM workflows with typed contracts, tool-use, knowledge injection, and pipeline orchestration. Test everything locally before deploying.
Platform teams — deploy to Kubernetes with rate limiting, model tier management, dead-letter handling, and OpenTelemetry tracing. Scale any component independently.
Test shipped workers in the browser — paste text, get results:
loom workshop # open web UI
# → Workers → summarizer → Test → paste text → RunSix ready-made workers ship with Loom: summarizer, classifier, extractor, translator, qa (question answering with source citations), and reviewer (quality review against configurable criteria).
Scaffold workers and pipelines interactively — YAML is generated for you:
loom new worker # create a step from prompts
loom new pipeline # chain steps into a workflow
loom validate configs/workers/*.yaml # check your configs
loom workshop # test and evaluate in the web UIFor teams, continuous processing, or high-throughput scenarios:
loom router --nats-url nats://localhost:4222
loom worker --config configs/workers/summarizer.yaml --tier local
loom pipeline --config configs/orchestrators/my_pipeline.yaml
loom submit "Analyze the quarterly reports"Scale any component by running more copies — NATS load-balances automatically.
| Feature | What It Does |
|---|---|
| 6 Ready-Made Workers | Summarizer, classifier, extractor, translator, QA, reviewer — chain them immediately |
| Workshop | Web UI for testing, evaluating, and comparing step outputs |
| Built-in Evaluation | Test suites, scoring, golden dataset baselines, regression detection |
| Config-Driven | Define workers in YAML — no Python code needed for LLM steps |
| Knowledge Silos | Per-worker access control; blind audit workers can't see what they're reviewing |
| Pipeline Orchestration | Chain steps with automatic dependency detection and parallelism |
| Three Model Tiers | Local (Ollama), Standard (Claude Sonnet), Frontier (Claude Opus) |
| Document Processing | PDF/DOCX extraction via MarkItDown (fast) or Docling (deep OCR) |
| RAG Pipeline | Telegram channel ingestion, chunking, vector search (DuckDB or LanceDB) |
| MCP Gateway | Expose any workflow as an MCP server with a single YAML config |
| Config Wizard | loom setup auto-detects backends; loom new scaffolds workers/pipelines |
| Live Monitoring | TUI dashboard, OpenTelemetry tracing, dead-letter inspection |
| Deployment | Docker Compose, Kubernetes manifests, mDNS discovery |
Start here:
| Guide | Description |
|---|---|
| Concepts | How Loom works — the mental model in plain language |
| Getting Started | Install and get your first result |
| Why Loom? | How Loom compares to other frameworks — and when not to use it |
| Workshop Tour | What each Workshop screen does and when to use it |
| Configuration | ~/.loom/config.yaml reference and priority chain |
| CLI Reference | All 19 commands with every flag and default |
| Workers Reference | 6 shipped workers with I/O schemas and examples |
Go deeper:
| Guide | Description |
|---|---|
| RAG Pipeline | Social media stream analysis end-to-end |
| Building Workflows | Custom steps, pipelines, tools, knowledge |
| Workshop | Web UI architecture and enhancement guide |
| Architecture | System design, message flow, NATS subjects |
| Design Invariants | Non-obvious design decisions (read before structural changes) |
| Troubleshooting | Common issues and solutions |
| Deployment | Local, Docker, and Kubernetes |
| Area | Status | Details |
|---|---|---|
| Core framework | Complete | Messages, contracts, config, workspace |
| LLM backends | Complete | Anthropic, Ollama, OpenAI-compatible |
| Workers & processors | Complete | Tool-use, knowledge silos, embeddings |
| Orchestration | Complete | Goal decomposition, pipelines, scheduling |
| RAG pipeline | Complete | Ingest, chunk, embed, search (DuckDB + LanceDB) |
| Workshop web UI | Complete | Test bench, eval runner, pipeline editor |
| MCP gateway | Complete | FastMCP 3.x, session tools, workshop tools |
| Tests | 1643 passing | 90% coverage, no infrastructure needed |
Use it. Start with loom setup and go from there.
Contribute. New step types, contrib packages, test coverage, and docs are welcome. See Contributing.
Report issues. Bug reports with reproducible steps help the most.
This project uses Claude (Anthropic) as a development tool.
CLAUDE.md documents the architecture and design rules for
AI-assisted sessions. AI-generated code meets the same standards as human
contributions: typed messages, stateless workers, validated contracts, tests.
MPL 2.0 — Modified source files must remain open; unmodified files can be combined with proprietary code. Alternative licensing available for organizations with copyleft constraints. Contact: admin@irantransitionproject.org
For governance, succession, and contributor rights, see GOVERNANCE.md.