TO

tiangzlab/omicsclaw

开发工具
156 stars 质量 85 趋势 85

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-domains and sc-consensus-clustering skills.
  • 🧠 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_user choice 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.txt published 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, so npm install -g omicsclaw still 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}
}

⬆ Back to top

View this README on GitHub

推荐工具

换一个关键词,或者移除筛选条件。

安装

npx skillfish add tiangzlab/omicsclaw