Metadata-Version: 2.5
Name: murmurent
Version: 2026.10.5
Summary: Multi-group agentic infrastructure for a bioconvergence centre — with the v1 registrar layer above any single lab.
Project-URL: Homepage, https://github.com/hallettmiket/murmurent
Project-URL: Documentation, https://hallettmiket.github.io/murmurent/
Project-URL: Issues, https://github.com/hallettmiket/murmurent_dev/issues
Project-URL: Source, https://github.com/hallettmiket/murmurent
Project-URL: Changelog, https://github.com/hallettmiket/murmurent/blob/main/CHANGELOG.md
Author-email: Mike Hallett <michael.hallett@uwo.ca>
License: Apache-2.0
License-File: LICENSE
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.12
Requires-Dist: anthropic>=0.40
Requires-Dist: click>=8.1
Requires-Dist: cryptography>=42
Requires-Dist: fastapi>=0.115
Requires-Dist: httpx>=0.27
Requires-Dist: mcp<2,>=1.0
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: slack-sdk>=3.30
Requires-Dist: sse-starlette>=2.0
Requires-Dist: uvicorn>=0.30
Provides-Extra: dashboard
Requires-Dist: fastapi>=0.115; extra == 'dashboard'
Requires-Dist: httpx>=0.27; extra == 'dashboard'
Requires-Dist: streamlit>=1.30; extra == 'dashboard'
Requires-Dist: uvicorn>=0.30; extra == 'dashboard'
Provides-Extra: dev
Requires-Dist: black>=24.0; extra == 'dev'
Requires-Dist: isort>=5.13; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
Provides-Extra: gcal
Requires-Dist: google-api-python-client>=2.130; extra == 'gcal'
Requires-Dist: google-auth-httplib2>=0.2; extra == 'gcal'
Requires-Dist: google-auth-oauthlib>=1.2; extra == 'gcal'
Provides-Extra: mcp
Requires-Dist: mcp<2,>=1.0; extra == 'mcp'
Provides-Extra: slack
Requires-Dist: anthropic>=0.40; extra == 'slack'
Requires-Dist: slack-sdk>=3.30; extra == 'slack'
Description-Content-Type: text/markdown

<!-- The user-facing README. In the development repository this file is
     release/README_public.md; release/make_release.sh copies it to README.md
     when it builds the release tree. Edit it there, not here: a change made in
     the release repo is overwritten by the next release.

     Keep it short (issue #161): one command per step, and a link for every
     special case. Detail belongs in docs/. -->

# Murmurent

<!-- Badges: images drawn by shields.io from live data (PyPI, GitHub). -->
[![PyPI](https://img.shields.io/pypi/v/murmurent?label=PyPI)](https://pypi.org/project/murmurent/)
[![Downloads](https://img.shields.io/pypi/dm/murmurent?label=downloads)](https://pypistats.org/packages/murmurent)
[![Python](https://img.shields.io/badge/python-3.12%2B-blue)](https://www.python.org/)
[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
[![Docs](https://img.shields.io/badge/docs-mikehallett.science-6f4da8)](https://mikehallett.science/murmurent/)
[![Built on Claude Code](https://img.shields.io/badge/built%20on-Claude%20Code-d97757)](https://claude.com/claude-code)
[![Stars](https://img.shields.io/github/stars/hallettmiket/murmurent?style=flat)](https://github.com/hallettmiket/murmurent/stargazers)

AI assistants for research groups, built on Claude Code. Each lab keeps
control of its own people and data, and can share with other labs when that
helps.

**▶ [Watch the 7-minute getting-started video](https://mikehallett.science/assets/videos/murmurent_getting_started.html)**

**📖 [Read the documentation](https://mikehallett.science/murmurent/)**: getting
started, joining a lab, projects, the agents, and every command.

You need a Mac or Linux computer with
[Claude Code](https://claude.com/claude-code) installed and signed in.

## 1. Install

Install `uv`, the tool that installs Murmurent:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Open a new terminal, then:

```bash
uv tool install murmurent
murmurent install
murmurent doctor
```

`murmurent doctor` checks the install. If something is wrong, it prints the
command that fixes it.

You also get a **Murmurent Dashboard** icon: in Applications on a Mac, in
the applications menu on Linux.

## 2. Say who you are

```bash
murmurent init
```

It asks for your name, your email and your role: **member** (you work in a
lab), **PI** (you lead a lab or core facility) or **mayor** (you run a centre).

## 3. Set up a folder

Do this for every folder that holds research data. It turns on the check that
removes patient identifiers from anything leaving your computer.

```bash
murmurent repo adopt ~/repos/<folder>
```

The folder must be a git repository inside your repositories folder (`~/repos`
unless you chose another).
[If it does not work](https://mikehallett.science/murmurent/install_special_cases/#setting-up-a-folder-did-not-work).

## 4. Start working

```bash
cd ~/repos/<folder>
claude
```

Ask Claude Code anything, including "how do I use Murmurent?".

## Updating

```bash
uv tool upgrade murmurent
murmurent install
```

## Next

- [See what Murmurent can do](https://mikehallett.science/murmurent/getting_started/)
- [Join your lab](https://mikehallett.science/murmurent/identity/#members-join-a-group)
- [Set up your lab or core](https://mikehallett.science/murmurent/identity/#pis-set-up-your-lab-standalone-no-mayor-needed)
- [Start a centre](https://mikehallett.science/murmurent/centre_overview/)
- [All documentation](https://mikehallett.science/murmurent/)

## Help

Ask Claude Code first. If that does not solve it, see
[installation special cases](https://mikehallett.science/murmurent/install_special_cases/)
or [report a problem](https://github.com/hallettmiket/murmurent_dev/issues).

---

Mike Hallett, michael.hallett@uwo.ca. Licensed under [Apache-2.0](LICENSE).
