Metadata-Version: 2.5
Name: louped
Version: 0.9.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. 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)
