GnosisLab
Umbrella project — a composed research-automation distribution. Subsystems live in subfolders:
ml-scientist/— the scientific-experiment MCP stack (hypothesis → experiment → evidence → conclusion): five MCP servers, sealed execution, invariant suite, observability GUIs.openshell/— (planned) NVIDIA OpenShell launch-within-shell subsystem.
Host requirements
-
Linux — trial sandboxing uses bubblewrap mount namespaces.
-
Python ≥ 3.10 and
uv(curl -LsSf https://astral.sh/uv/install.sh | sh), or any pip for the PyPI path below. -
bubblewrap + strace — required by the sealed executor; the launchers refuse to start without them:
sudo apt install bubblewrap strace # Debian/Ubuntu
-
Ports 38050–38091 free (five servers × MCP + GUI; see
ml-scientist/ports.envto move them).
Install
From source (this repository)
git clone <this-repo> gnosislab && cd gnosislab
uv sync # one root env for the whole distribution
ml-scientist/ is also independently runnable — cd ml-scientist && uv sync gives it its own env.
From PyPI
pip install gnosislab # or, better for CLI use:
uv tool install gnosislab # isolated env, commands on PATH
This installs the five MCP servers as console commands
(ml-episteme-mcp, ml-anamnesis-mcp, ml-zetesis-mcp,
ml-arete-mcp, ml-agora-mcp). The gnosislab lifecycle script is
repo-only for now (bash, not shipped in the wheel) — a gnosislab
CLI entry point is planned.
Run
gnosislab is a symlink at the repo root into ml-scientist/:
./gnosislab start all # upstreams first, agora last
./gnosislab status # pid/ports/health per server
./gnosislab logs arete
./gnosislab stop all
(./labloop still works — transition symlink, prints a rename
notice.)
To launch from anywhere, put it on PATH:
ln -sf "$PWD/gnosislab" ~/.local/bin/gnosislab
gnosislab start all
Per-server observability GUIs: anamnesis :38091, episteme :38081,
zetesis :38071, arete :38061, agora :38051 (lab-level status hub).
Each server also responds to ml-<name>-mcp run directly in the
foreground via ml-scientist/run-ml-<name>.sh for debugging.
Config: ml-scientist/ml-*.toml (per server) + ports.env.
Runtime state lives outside the repo in ~/.ml-<name>/
(databases, logs, pidfiles).
Test
uv run pytest -q # full suite (1289 tests)
Publish
uv build
uv publish --publish-url https://test.pypi.org/legacy/ # TestPyPI
uv publish # PyPI
Metadata
Release files for gnosislab 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gnosislab-0.1.0.tar.gz | 7.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gnosislab-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.3 MB
Release files / gnosislab-0.1.0.tar.gz
| Download URL | gnosislab-0.1.0.tar.gz |
|---|---|
| Size | 7.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9aed94fde4a82d678830affb55ba489a9b42a961b7ea026cd5f120ce4319dfef
|
|
BLAKE2b-256 checksum How to use checksums |
9d7abd598350219775f8e799894603ca1b27e52bd29051bdc8e8a2e01028eaa7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / gnosislab-0.1.0-py3-none-any.whl
| Download URL | gnosislab-0.1.0-py3-none-any.whl |
|---|---|
| Size | 791.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
54a73fef39f1cd7e6f859e2d2e0a098ffef2dfb91cd2bee891feec5a9b8f1a94
|
|
BLAKE2b-256 checksum How to use checksums |
31d3851f4acc475ddbd773eefb323ce9fbaf575544c4f7818f4b93e0b2e41e5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|