Metadata-Version: 2.5
Name: louped
Version: 0.10.0
Summary: A local workbench for LLM behavior and inference research: experiments, evals, interventions, training and interpretability in one app
Project-URL: Homepage, https://louped.vercel.app
Project-URL: Documentation, https://louped.vercel.app/docs
Author: ashworks1706
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: evals,inference,interpretability,llm,mcp,research,sycophancy
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.12
Requires-Dist: alembic>=1.13
Requires-Dist: fastapi>=0.142.2
Requires-Dist: fsspec>=2024.6
Requires-Dist: httpx>=0.28
Requires-Dist: huggingface-hub>=1.33
Requires-Dist: inspect-ai<0.4,>=0.3.276
Requires-Dist: inspect-evals>=0.23.0
Requires-Dist: ipykernel>=6.29
Requires-Dist: kaleido>=1.0
Requires-Dist: mcp>=2.3
Requires-Dist: mlflow-skinny>=3.0
Requires-Dist: nbconvert>=7.16
Requires-Dist: nbformat>=5.10
Requires-Dist: nnsight>=0.4
Requires-Dist: nvidia-ml-py>=12; sys_platform != 'darwin'
Requires-Dist: openai>=3.24.0
Requires-Dist: papermill>=2.6
Requires-Dist: plotly>=5.24
Requires-Dist: psutil>=5.9
Requires-Dist: pydantic>=2.10
Requires-Dist: pypdfium2>=4.30
Requires-Dist: python-docx>=1.1
Requires-Dist: python-pptx>=1.0
Requires-Dist: safetensors>=0.4
Requires-Dist: scikit-learn>=1.5
Requires-Dist: sqlalchemy>=2.1.3
Requires-Dist: torch>=2.14.1
Requires-Dist: transformers>=5.18.0
Requires-Dist: tyro>=0.9
Requires-Dist: uvicorn>=0.32
Requires-Dist: vl-convert-python>=1.7
Provides-Extra: agent
Provides-Extra: data
Requires-Dist: httpx>=0.28; extra == 'data'
Requires-Dist: pyyaml>=6; extra == 'data'
Requires-Dist: rich>=14; extra == 'data'
Provides-Extra: evals
Provides-Extra: interp
Provides-Extra: notebooks
Provides-Extra: rag
Requires-Dist: bm25s>=0.3.12; extra == 'rag'
Requires-Dist: sentence-transformers>=5; extra == 'rag'
Provides-Extra: reports
Provides-Extra: rl
Requires-Dist: bitsandbytes>=0.46.1; (sys_platform != 'darwin') and extra == 'rl'
Requires-Dist: datasets>=4; extra == 'rl'
Requires-Dist: httpx>=0.28; extra == 'rl'
Requires-Dist: math-verify>=0.9; extra == 'rl'
Requires-Dist: peft>=0.21.2; extra == 'rl'
Requires-Dist: pyyaml>=6; extra == 'rl'
Requires-Dist: reasoning-gym>=0.1.25; extra == 'rl'
Requires-Dist: rich>=14; extra == 'rl'
Requires-Dist: trl>=1.14.1; extra == 'rl'
Provides-Extra: sae
Requires-Dist: sae-lens>=6.54.0; extra == 'sae'
Provides-Extra: server
Provides-Extra: sources
Provides-Extra: sync
Provides-Extra: tracking
Provides-Extra: train
Requires-Dist: bitsandbytes>=0.46.1; (sys_platform != 'darwin') and extra == 'train'
Requires-Dist: datasets>=4; extra == 'train'
Requires-Dist: httpx>=0.28; extra == 'train'
Requires-Dist: peft>=0.21.2; extra == 'train'
Requires-Dist: pyyaml>=6; extra == 'train'
Requires-Dist: rich>=14; extra == 'train'
Requires-Dist: trl>=1.14.1; extra == 'train'
Description-Content-Type: text/markdown

<p align="center"><img src="https://louped.vercel.app/wordmark.svg" alt="louped" height="48"></p>
<p align="center">An astute harness for LLM behavior and inference research.</p>

<p align="center">
  <a href="https://louped.vercel.app">Website</a> •
  <a href="https://louped.vercel.app/docs">Docs</a>
</p>

Keep your research questions about language models in a project. Each question is an experiment
with a README (the question and the test) and a script that runs it. Your coding agent writes and
runs them. Experiments that serve one goal can share a project (`projects/<name>/README.md`).
You read the results item by item in louped's app. Everything runs on your machine or
your cluster, with open-weight models.

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://louped.vercel.app/demo/items-dark.png">
  <img alt="Fifty items under three conditions, each against the reference: a re-analysis of released CAA results" src="https://louped.vercel.app/demo/items-light.png">
</picture>

## Start

```sh
pip install louped
louped init my-research && cd my-research
louped serve
```

Open http://127.0.0.1:8000 and launch the example experiment.

## How it works

1. **Make a project** with `louped init`. It also connects your coding agent.
2. **Ask a question.** Your agent (Claude Code, Codex, Cursor) writes the experiment.
3. **Run it** on your machine, or send it to a Slurm cluster. With a remote set, the job pushes
   its results and `louped pull` brings them in.
4. **Read the results**: every item under every condition, what changed, and out of how many.
   Edit a run's write-up beside its rendering. Move what you no longer need to the trash.
5. **Share and shape it.** Push runs for others to pull, or publish a read-only dashboard.
   Shift+click rows, cards or fields to ask your agent about them, or to have it change them. The
   agent points back at what it means.

Already have results? `louped view <folder>` opens them read-only.

See the [docs](https://louped.vercel.app/docs) for writing experiments, changing models, using
your agent and running on a cluster.

## Develop

You need [just](https://just.systems), [uv](https://docs.astral.sh/uv) and Node 22 with pnpm.

```sh
just bootstrap     # install everything and the git hooks
just check         # lint, types, tests, and the app and site builds
just serve         # the app on :8000
```

## License

[Apache 2.0](LICENSE)
