Local-first AI research partner for multi-omics analysis
概要
Local-first AI research partner for multi-omics analysis
README
OmicsClaw turns local multi-omics tools into AI-callable skills. The LLM plans and operates; Python, R, and CLI tools process your data in a local or remote runtime — raw matrices never leave your machine. One agent loop serves the terminal, the desktop app, and chat platforms.
📢 What’s New
- 🤝 Consensus runtime — multi-method consensus is now a declarative workflow runtime. Fan out N spatial-clustering or single-cell methods, then merge them with verified typed operators or an exploratory LLM synthesis. Triggered by the
consensus-domainsandsc-consensus-clusteringskills. - 🧠 Autonomous Analysis Path — an Analysis Router can parameterize an exact skill from your data, or run a generated-code analysis with approval-gated workspace writes and bounded LLM repair.
- ⚡ Prompt-prefix caching — automatic provider cache hits across turns to cut latency and token spend.
- 🖥️ Desktop upgrades — a live to-do task list with planning guidance, an interactive
ask_userchoice tool, and LLM-generated session titles.
🖥️ App Workspace
One workspace for chat, datasets, skills, execution, memory, and analysis outputs.
📥 Download the OmicsClaw Desktop App · All releases · SHA256SUMS
The Releases tab hosts the prebuilt desktop installers — the same oc desktop-server the CLI ships, wrapped in a chat-ready Electron UI. Pick the asset for your platform:
| Platform | Installer |
|---|---|
| macOS — Apple Silicon (M1 / M2 / M3 / M4) | OmicsClaw--arm64.dmg |
| macOS — Intel | OmicsClaw--x64.dmg |
| Windows — x64 / ARM64 | OmicsClaw.Setup.-x64.exe · OmicsClaw.Setup.-arm64.exe |
| Linux — x64 | .AppImage · .deb · .rpm |
| Linux — ARM64 | .AppImage |
Verify each download against
SHA256SUMS.txtpublished alongside the installers. The desktop client and the CLI talk to the same backend — analyses, memory, and remote runtimes stay portable across both.
💡 Why OmicsClaw?
| Common pain | OmicsClaw answer |
|---|---|
| Analyses restart from zero | Persistent workspace, sessions, and graph memory |
| Python, R, and CLI tools are scattered | Unified skill runner plus natural-language routing |
| Large data lives on servers | Local UI with remote Linux execution over SSH |
| Reports, artifacts, and parameters drift | Standard skill output contracts and reproducible demos |
✨ Capabilities
| 🧠 MemorySessions, preferences, lineage | 🔒 Local-firstRaw data stays in your runtime | 🧰 95 skillsGenerated catalog + demos | 🧭 Smart routingNatural language to tools |
💬 CLI Surfaceoc interactive, oc tui |
🌐 Desktop SurfaceFastAPI for desktop/web | 📨 Channel SurfaceTelegram text + photo, Feishu text; others gated | 📡 Remote modeSSH tunnel to Linux servers |
| 🤝 ConsensusMulti-method merge | 🤖 Autonomous pathRouter + assisted params | 🔌 Any LLMOpenAI-compatible providers | 📊 ReproducibleFigures + data + report |
⚡ Quick Start
git clone https://github.com/TianGzlab/OmicsClaw.git
cd OmicsClaw
bash 0_setup_env.sh
conda activate OmicsClaw
oc list
oc run spatial-preprocess --demo
Configure chat and runtime settings:
oc onboard
oc interactive
If oc is not on PATH, use python omicsclaw.py .
🧭 Interfaces
Pick the entry point that fits your workflow — they all reach the same backend.
| Surface | Entry point | Use it for |
|---|---|---|
| 💬 CLI Surface | oc interactive / oc tui |
Natural-language workflows in the terminal (REPL + full-screen TUI) |
| 🌐 Desktop Surface | oc desktop-server |
FastAPI backend; authoritative text plus bounded /v1/turns multipart image ingress |
| 📨 Channel Surface | python -m omicsclaw.surfaces.channels --channels telegram``python -m omicsclaw.surfaces.channels --channels feishu |
Owner-only Telegram text + one photo/caption and Feishu text-only; other media and adapters fail closed |
| 🧪 Skill runner (non-Surface) | oc run --demo |
Reproducible one-shot analysis |
| 🔌 MCP (non-Surface) | oc mcp add ... |
External tool integration |
| 📡 Remote mode | oc desktop-server over SSH |
Server-side data and jobs |
Remote mode uses 127.0.0.1, SSH tunneling, and OMICSCLAW_REMOTE_AUTH_TOKEN. See remote execution and the legacy remote guide.
Channels are Owner-only: Feishu additionally requires FEISHU_ALLOWED_SENDERS and
FEISHU_BOT_OPEN_ID (the identity that proves a group message mentioned this bot).
Everything not listed above — other adapters, outbound media — fails closed.
📦 Installation
| Path | Best for | Command |
|---|---|---|
| 🥇 Full conda | Real analysis with Python + R + bioinformatics CLIs | bash 0_setup_env.sh |
| 🪶 Lightweight venv | Chat, routing, dev, Python-only skills | pip install -e ".[interactive]" |
| 📨 Telegram + Feishu Channels | Production Owner-only Channel inputs | pip install -e ".[channels]" |
| 🖥️ Desktop/web backend | OmicsClaw-App or browser frontends | oc desktop-server --host 127.0.0.1 --port 8765 |
| 🧠 Memory API | Inspect graph memory over HTTP | pip install -e ".[memory]" then oc memory-server |
📖 Details: installation guide, quickstart. Dependencies live in pyproject.toml, environment.yml, and 0_setup_env.sh.
🚀 npm install & Desktop pairing
One npm install -g omicsclaw gives you the CLI and a self-contained CPython runtime — no conda, no venv, no system Python. That same runtime is the interpreter the Desktop App can be pointed at, so a single install serves both the terminal and the App.
Status — the wrapper and its four platform runtimes are built by
npm-release.yml; publishing is a manual, reviewer-gated dispatch that has not run yet, sonpm install -g omicsclawstill 404s on the registry. Until it lands, install the backend through the conda or pip paths above.
npm install -g omicsclaw # CLI + the one runtime matching your platform
omicsclaw --version # `oc` is the short alias for the same binary
oc list # 95 skills, by domain
Node.js 18+ is the only prerequisite. The wrapper carries no runtime: it declares one @omicsclaw/runtime- per host in optionalDependencies, and npm’s os / cpu filtering lands exactly one on disk — the pattern esbuild and biome use. The postinstall hook records that interpreter in ~/.omicsclaw/runtime.json and renames any pip-installed omicsclaw / oc shim to -legacy, so the npm command wins PATH without deleting the old one.
| Host | Runtime |
|---|---|
| Linux x64 · Linux arm64 · macOS Apple Silicon · Windows x64 | ✅ prebuilt, ships with the package |
| macOS Intel · Windows arm64 | ❌ no llvmlite wheels / no CI runner — clone the repo and run 0_setup_env.sh |
The runtime carries the agent and the desktop server, not the scientific stack (scanpy, torch, R, bioconda CLIs — roughly 1.5 GiB). Skills that need those tell you what to install into the same interpreter; for the full supported stack, use the Linux conda path.
Pairing with OmicsClaw-App
The desktop installer contains no Python, and never downloads, creates, repairs, or auto-selects an interpreter. You pick one explicitly; the App commits it only after a preflight, a provisional launch, and a strict /health check, and restores the previous runtime if any of that fails.
| Mode | Backend runs on | What you do in the App |
|---|---|---|
| Local | This machine | Runtimes → Local Python (or the first-run wizard). Detect existing environments lists the npm runtime — read from ~/.omicsclaw/runtime.json — alongside conda envs; click Use …, or Choose Python and select the interpreter yourself. Detection runs only when clicked and never selects for you. |
| Remote | A Linux server | Start oc desktop-server --host 127.0.0.1 --port 8765 there, then Runtimes → New Runtime with a direct URL or an SSH alias (plus the bearer token if the backend requires one), Run Ping, then Make Active. The desktop host needs no Python at all. |
Print the exact interpreter path when the App asks for one:
# npm runtime
python -c "import json, os; print(json.load(open(os.path.expanduser('~/.omicsclaw/runtime.json')))['pythonPath'])"
# conda env
conda run -n OmicsClaw python -c "import sys; print(sys.executable)"
The backend binds 127.0.0.1:8765 (OMICSCLAW_APP_HOST / OMICSCLAW_APP_PORT); remote profiles authenticate with OMICSCLAW_REMOTE_AUTH_TOKEN. Configure the LLM provider in the App’s setup wizard or in the backend’s .env. Chat-triggered runs are written to /output, which is what the App dashboard lists.
📖 Distribution internals — wrapper layout, platform packages, and the ~/.omicsclaw/runtime.json contract — are documented in npm/AGENTS.md and npm/omicsclaw/README.md.
🧬 Domains
oc list and skills/catalog.json currently agree on 95 registered skills across 8 domains.
| Domain | Skills | Examples | Docs |
|---|---|---|---|
| 🧫 Spatial transcriptomics | 19 | QC, domains, annotation, deconvolution, CNV, trajectory | spatial |
| 🔬 Single-cell omics | 34 | QC, clustering, annotation, doublets, velocity, GRN | singlecell |
| 🧬 Genomics | 10 | QC, alignment, variants, CNV, assembly, epigenomics | genomics |
| 🧪 Proteomics | 8 | DIA/DDA, PTM, networks, biomarkers | proteomics |
| ⚗️ Metabolomics | 8 | Peaks, normalization, annotation, pathways | metabolomics |
| 📈 Bulk RNA-seq | 13 | DE, enrichment, co-expression, deconvolution, survival | bulkrna |
| 🧠 Orchestration | 2 | Routing, planning, literature support | orchestrator |
| 📚 Literature | 1 | PDF/DOI/PubMed/GEO parsing and dataset handoff | — |
Run oc list for the current CLI catalog.
🧠 Memory
Graph-backed memory at omicsclaw/memory/ carries your sessions, datasets, analyses, preferences, and insights across runs — chat history and lineage come back when you reopen any surface. Each surface stays isolated so state never leaks across users or workspaces.
| Surface | Memory scope |
|---|---|
| CLI / TUI | Per workspace path |
| Desktop app | Per launch (or per signed-in user) |
| Telegram / Feishu bot | Per platform user |
A reserved __shared__ pool (core agent identity, knowledge handbook guards, glossary) is the one thing every surface reads back automatically. Full vocabulary and architecture in docs/CONTEXT.md.
📚 Documentation
| Topic | Where |
|---|---|
| 🚀 Quickstart & onboarding | introduction/quickstart |
| 🏗️ Architecture | docs/ARCHITECTURE.md (canonical ledger) · docs/architecture/ |
| 📈 Engineering progress log | docs/PROGRESS.md |
| 🧬 Domain guides | spatial · singlecell · genomics · proteomics · metabolomics · bulkrna |
| 🧠 Domain language & memory | docs/CONTEXT.md |
| 📡 Remote execution | engineering/remote-execution |
| 🔒 Safety & data privacy | data privacy · rules & disclaimer |
| 🛠️ Building skills | CONTRIBUTING.md · templates/skill/ |
| 🤖 Repo / agent contracts | AGENTS.md |
Hosted docs site: ****
❓ FAQ
⚠️ Safety
| Rule | Meaning |
|---|---|
| 🔒 Local-first | Raw data processing happens in your local or remote runtime |
| 🧪 Research use only | Not a medical device; no clinical diagnosis |
| 👩🔬 Expert review | Validate scientific outputs before decisions |
| 🔐 Remote caution | Use localhost binding, SSH tunnels, and tokens |
OmicsClaw is a research and educational tool for multi-omics analysis. It is not a medical device and does not provide clinical diagnoses. Consult a domain expert before making decisions based on these results.
See data privacy and rules/disclaimer.
👥 Community
Maintainers: Luyi Tian (Principal Investigator), Weige Zhou (Lead Developer), Liying Chen (Developer), and Pengfei Yin (Developer).
🐛 Issues · 💬 Discussions · 📖 Docs
🙏 Acknowledgments
Architecture, skill design, and local-first philosophy are inspired by ClawBio, an early bioinformatics-native AI agent skill library. Memory and session-continuity patterns are inspired by Nocturne Memory.
🛠️ Contributing
- New skills: see CONTRIBUTING.md and the v2 scaffold under
templates/skill/. - Repository / agent work: see AGENTS.md — covers contract tests, provider contracts, skill runner, and architecture references.
📜 License
Apache-2.0. See LICENSE.
📝 Citation
@software{omicsclaw2026,
title = {OmicsClaw: A Memory-Enabled AI Agent for Multi-Omics Analysis},
author = {Zhou, Weige and Chen, Liying and Yin, Pengfei and Tian, Luyi},
year = {2026},
url = {https://github.com/TianGzlab/OmicsClaw}
}
推奨ツール
別のキーワードを試すか、フィルタを外してください。
インストール
npx skillfish add tiangzlab/omicsclaw