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)

Searching Database…

Что это?OmniScientist — открытый всемодальный ИИ-учёный, работающий на вашей собственной машине. Укажите ему папку с данными и направление исследования, и он выдвинет гипотезу, напишет и запустит собственный аналитический код, изучит полученные графики и подготовит черновик статьи, где каждое число прослеживается до реальной записи о выполнении.
Это десктоп-приложение, CLI или что-то ещё?Он поставляется как десктоп-приложение плюс навык Claude Code, и то и другое собрано из одной кодовой базы; терминальная CLI-версия существовала, но прекращена с v0.2.1. Папка 'engine/' — эталонная реализация для скриптуемых воспроизводимых запусков.
Как это запустить?Либо скачайте десктоп-приложение для своей платформы (macOS Apple Silicon, Linux .deb, установщик Windows), либо вставьте установочный сниппет для агента в Claude Code, Cursor, Codex или любой агент с доступом к shell и добавьте zip навыка Claude Code.
Какие модели и API-ключи нужно настроить?Нужно задать основную модель (deepseek-v4-flash или любой эндпоинт, совместимый с OpenAI) и перцепционный сайдкар для изображений/видео/облаков точек (по умолчанию claude-sonnet-5 или vision-модель DeepSeek на том же ключе). Ключи сохраняются из диалога настроек в десктоп-приложении или хранятся в ~/.omnisci/env.
Готово ли это к повседневному использованию?Проект называет себя ранним ПО версии 0.2.1, где интерфейсы ещё меняются; терминальная CLI-версия уже прекращена, а для Intel Mac готовых сборок нет — придётся собирать из исходников.
Для кого это предназначено?Для исследователей и аналитиков данных, которые хотят, чтобы агент исследовал сырые мультимодальные данные (изображения, осциллограммы, видео, облака точек, таблицы) и выдавал черновик статьи с подтверждаемым происхождением результатов, а не просто ответы в чате.
Какие операционные системы поддерживаются?Десктоп-приложение выпускается для macOS (Apple Silicon), Linux (x64 .deb и arm64) и Windows (установщик x64); для Intel Mac требуется сборка из исходников.
Куда уходят мои API-ключи и данные?Учётные данные лежат в локальном env-файле (~/.omnisci/env или %USERPROFILE%\.omnisci\env), разбираются строго как данные и удаляются из окружения при запуске, так что собственный аналитический код агента их никогда не видит. Исходящий трафик ограничен выбранным эндпоинтом модели, ежедневной проверкой релизов GitHub и скачиванием зависимостей с PyPI/tectonic.
Как OmniScientist убеждается, что числа в статье настоящие?Шлюз происхождения (provenance gate) проверяет записи о выполнении, а не черновик: заявленное число допускается, только если это точное значение появлялось в stdout какого-то запуска, а пустые результаты отправляются на повторную генерацию идей.
Можно ли доверять цитатам в сгенерированной статье?Цитаты в реальном времени сверяются с OpenAlex и Crossref, поэтому каждая несёт настоящий DOI вместо выдуманной ссылки.
Что обнаружила одна из примерных статей?В демо-запуске на сейсмических данных STEAD агент выяснил, что 21.7% трасс, помеченных как чистый «шум», на самом деле несли когерентный поляризованный сигнал при уровне ложных тревог 1%, проверив это на самостоятельно сгенерированном суррогатном нулевом распределении.
Как устроен интерфейс рабочего пространства?Это локальное веб-приложение на 127.0.0.1 без внешнего развёртывания; закрытие вкладки браузера не останавливает запуск — исследование продолжается в фоне и возобновляется при следующем старте.
Size
57.1 MB
Stars
170
Age
2mo
Commits · 90 Days