OmniScientist README

The project's README from github.com/Omni-Scientist/OmniScientist. As one markdown file: README.md.

OmniScientist

An open, omni-modal AI scientist that runs on your own machine

Release CI Docs Website License

macOS Linux Windows Python Bun

English · 简体中文 · Français · Español · 繁體中文 · 日本語 · 한국어 · Português · Deutsch · Русский


https://github.com/user-attachments/assets/02477c18-28ff-4aad-a6bd-b54c6f032bc8

News


The compiled paper in the research log, each highlighted number linked to the run that produced it

The compiled paper beside the experiment trace, every highlighted number resolving to the run that produced it.

A ball-and-stick conformer computed from the chemistry case's SMILES, in the research log

A ball-and-stick conformer computed from the chemistry case's own SMILES, arriving in the research log mid-run.

A 64-cubed CT volume read as a point cloud, in the research log

A 64³ CT volume read as a point cloud, beside the tool calls that produced it.

Point OmniScientist at a folder of data and a research direction. It looks at the raw material itself, forms a hypothesis, writes and runs its own analysis code, reads the figures that come back, and drafts a paper whose every number traces to a real execution record. A run ends at a compiled PDF with figures, tables and references that resolve to real DOIs.

Images, waveforms, audio, video, point clouds, trajectories, tables and formulas all go in as they are.

Install

With an agent

Paste this into Claude Code, Cursor, Codex, or anything else with a shell.

For more details, please refer to omniscientist.github.io.

Read https://omni-scientist.github.io/setup/install.md and install the OmniScientist desktop app on this machine, following the steps.

Download

macOS Linux Windows
Desktop app Apple silicon x64 .deb x64 installer
Claude Code skill omnisci-skill.zip omnisci-skill.zip omnisci-skill.zip

The terminal edition (CLI) is discontinued as of 0.2.1. The desktop app carries the same engine, and Claude Code users take the skill above.

The workspace

Each stage streams into the transcript, and every artifact lands in the research log the moment it exists. That covers the matplotlib output, the script that drew it, the data table behind it, and at the end the compiled paper.

The workspace is a local web app. The address bar in the screenshots above reads 127.0.0.1 because that is the entire deployment. The layout collapses to one column on a phone. Closing the page no longer stops a run. Research keeps going in the background, and the next launch shows everything it produced.

The interface follows the browser's language on first launch and is switched from the toolbar, in English, Simplified and Traditional Chinese, French, Spanish, Japanese, Korean, Portuguese, German and Russian.

Provenance

Every number in the draft carries a link back to the run that produced it. A gate reads the execution record rather than the draft, and admits the draft once each of those numbers has appeared in some run's stdout. A null result routes back to re-ideation. Citations are resolved live against OpenAlex and Crossref, so each one carries a real DOI.

Configuration

Credentials live in ~/.omnisci/env, one KEY=VALUE per line, and in %USERPROFILE%\.omnisci\env on Windows.

DEEPSEEK_API_KEY=...
ANTHROPIC_API_KEY=...

The file is parsed strictly as data. The values are removed from the environment at startup, so they stay out of the analysis code the agent writes.

Two models do two jobs. The backbone reasons and writes. A perception sidecar reads the pixels, and takes over whenever the evidence is an image, a waveform, a video or a point cloud.

Edition Backbone Perception sidecar
desktop, terminal deepseek-v4-flash, or any OpenAI-compatible endpoint via OMNISCI_BASE_URL / OMNISCI_API_KEY / OMNISCI_MODEL claude-sonnet-5 by default, deepseek-v4-flash-vision-exp on the same DeepSeek key, changed with OMNISCI_VISION_PROVIDER / OMNISCI_VISION_MODEL
engine any, selected by OMNIST_MODEL, covering OpenAI, Anthropic, OpenRouter, a local vLLM or sglang server, or your own gateway OMNIST_PERCEIVER

In the desktop edition both are set from the settings dialog, which saves a configuration once it has answered a live request. The transport follows from the model name, so you supply your own URL and key. The full table is in docs/USAGE.md.

Outbound traffic falls into three kinds. The first is your own model endpoint. The second is a once-a-day release check against GitHub, which OMNISCI_UPDATE_CHECK=off turns off. The third happens when you ask the desktop app to install its dependencies, and reaches PyPI and the tectonic release page.

Build from source

Needs Bun 1.3 or newer.

cd cli
bun install
bun run tools/gen-skill-assets.ts    # embed the skill, then it is one file
bun run build                        # -> dist/omnisci

cd ../desktop
bun install
bun run build:desktop                # -> dist-desktop/omnisci-desktop

The desktop launcher is pure TypeScript and cross-compiles with --target; it has no native dependencies.

Tests

python3 scripts/scan_leaks.py        # scan for personal data
python3 scripts/check_parity.py      # engine, both skills and the desktop agree
python3 skill/build.py               # the skill is still self-contained

cd cli      && bun run typecheck && bun test
cd desktop  && bun run build:assets && bun run typecheck && bun test gateway launcher && bun run test:e2e

CI runs all of the above plus a live smoke test of the compiled launcher on every push. Tagging v* builds and publishes the release artifacts.

Repository layout

OmniScientist/
├── engine/            the reference engine and evaluation harness
│   ├── omniscientist/     flat, self-contained modules
│   ├── examples/          case specifications and seven small real-data demos
│   ├── datasets/          provenance and split manifest
│   └── scripts/data.py    list, fetch and verify public research data
├── skill/             the Claude Code edition, self-contained
├── cli/               the agent engine the desktop embeds (its standalone CLI build is discontinued)
│   └── skills/omnisci/    the desktop's embedded edition of the skill
├── desktop/           the browser workspace, its gateway and the launcher
│   ├── launcher/          the single executable: static assets, gateway, browser
│   └── packaging/         macos, linux and windows
├── papers/            sample papers the engine wrote, with their scores
├── docs/              installation, usage, datasets, development
├── scripts/           repository hygiene
├── install.sh         kept to tell old CLI users the CLI is discontinued
└── install.ps1        the same for Windows

Notes on the two skill editions, the generated files and the per-platform build are in docs/DEVELOPMENT.md.

Status

Early software, version 0.2.1. Interfaces are still moving and releases can change them.

Platform Desktop
macOS arm64 released
Linux x86_64 released
Linux arm64 released
Windows x64 released

The desktop app has real-machine end-to-end paper runs on macOS (15.7.7 / M3) and on Windows, from install through a compiled PDF. Intel Macs build from source, see Build from source.

Release assets are listed in a single SHA256SUMS, and the desktop app's update check verifies downloads against it.

Sample papers

Five papers written end to end by a single run are in papers/, with the peer-review scores they were given. One worked example is the STEAD seismic traces carrying a "noise" label. The agent read the three-component waveforms, found coherent arrivals inside the noise-labeled set, and tested them against a surrogate null distribution it generated itself.

git clone https://github.com/Omni-Scientist/OmniScientist.git && cd OmniScientist
python -m venv .venv && source .venv/bin/activate && pip install -r engine/requirements.txt
export OMNIST_MODEL=claude-sonnet-5 ANTHROPIC_API_KEY=sk-ant-...
python engine/omniscientist/agentic.py --task stead_seismic --stage run

engine/ is the reference implementation the technical report describes, and the one to use for scriptable, reproducible runs. OMNIST_MODEL picks the backbone and the transport follows from the name, so you bring your own endpoint and key.

The resulting paper, Coherent polarized signals in a substantial fraction of noise-labeled STEAD traces, reports that 21.7% of the sampled noise-labeled traces carry real signal at a 1% false-alarm rate.

Contributing

Issues and pull requests are welcome. Reports from Windows and Intel Macs are especially useful. Before opening a PR, run the checks under Tests, which are the same ones CI runs. Adding a discipline takes one series.json under engine/examples/, described in docs/USAGE.md.

Citation

The technical report behind this software is on arXiv.

@article{omniscientist2026,
  title   = {OmniScientist: An Omni-Modal Omni-Discipline AI Scientist},
  author  = {Li, Bobo and Fei, Hao and Ju, Tianjie and Lee, Mong-Li and Hsu, Wynne},  % scan-leaks: allow
  journal = {arXiv preprint arXiv:2608.13558},
  year    = {2026}
}

The paper-facing version of this page, with authors and affiliations, is README_paper.md.

License

MIT.

OmniScientist (Omni-Scientist/OmniScientist)

science
Searching Database…

What is this?OmniScientist is an open, omni-modal AI scientist that runs on your own machine. Point it at a folder of data and a research direction, and it forms a hypothesis, writes and runs its own analysis code, reads the resulting figures, and drafts a paper whose every number traces back to a real execution record.
Is it a desktop app, a CLI, or something else?It ships as a desktop app plus a Claude Code skill, both built from one codebase; the terminal CLI edition existed but was discontinued as of v0.2.1. The 'engine/' folder is the reference implementation used for scriptable, reproducible runs.
How do I get it running?Either download the desktop app for your platform (macOS Apple Silicon, Linux .deb, Windows installer) or paste the agent install snippet into Claude Code, Cursor, Codex or any shell-capable agent and add the Claude Code skill zip.
Which models and API keys do I need to configure?You set a backbone model (deepseek-v4-flash or any OpenAI-compatible endpoint) and a perception sidecar for images/video/point clouds (claude-sonnet-5 by default, or DeepSeek's vision model on the same key). Keys are saved from the settings dialog in the desktop app or stored in ~/.omnisci/env.
Is this ready for everyday use?The project calls itself early software at version 0.2.1 with interfaces still moving; the terminal CLI edition is already discontinued, and Intel Macs aren't pre-built so you have to build from source.
Who is this aimed at?Researchers and data analysts who want an agent to explore raw multimodal data (images, waveforms, video, point clouds, tables) and produce a provenance-backed draft paper rather than just chat answers.
Which operating systems are supported?The desktop app is released for macOS (Apple Silicon), Linux (x64 .deb and arm64), and Windows (x64 installer); Intel Macs require building from source.
Where do my API keys and data go?Credentials live in a local env file (~/.omnisci/env or %USERPROFILE%\.omnisci\env), are parsed strictly as data, and are stripped from the environment at startup so the agent's own analysis code never sees them. Outbound traffic is otherwise limited to your chosen model endpoint, a once-a-day GitHub release check, and dependency downloads from PyPI/tectonic.
How does OmniScientist make sure the numbers in the paper are real?A provenance gate checks the execution record rather than the draft: it only admits a claimed number once that exact value has appeared in some run's stdout, and null results get routed back to re-ideation.
Are the citations in the generated paper trustworthy?Citations are resolved live against OpenAlex and Crossref, so every one carries a real DOI instead of a hallucinated reference.
What did one of the sample papers actually discover?In a demo run on STEAD seismic data, the agent found that 21.7% of traces labeled as pure 'noise' actually carried coherent polarized signal at a 1% false-alarm rate, testing this against a self-generated surrogate null distribution.
What is the workspace interface like?It's a local web app served at 127.0.0.1 with no external deployment; closing the browser tab doesn't stop a run, since research keeps going in the background and resumes on next launch.
Size
57.1 MB
Stars
170
Age
2mo
Commits · 90 Days