Vol. 01 · No. 1 · Beta Edition
AI Copilot

A chat that reads your analysis— and edits your workflow.

The AI Chat tab sits under the canvas. Every message carries the live node graph, and the model answers by calling read tools against the backend running on your PC — cluster counts, marker genes, QC thresholds, the last error. When a change is needed it returns an Action Plan you Apply, Undo, or hand to the agent with Approve & Run.

OpenAIAnthropicGeminiBring your own API keyOptional · the app runs without it
Grounded, not guessed

It knows what is on the canvas.

Before the model sees your question, the app assembles a system prompt from the workflow itself: which nodes exist, what they ran with, which one failed and why, plus the node reference for anything your message mentions. Ask “which clusters are T cells?” and the answer cites the markers your DEG node actually found.

  • The live node graph

    Every node with its type, label, parameters, status and — if it failed — the error string. Edges too, so the model knows what feeds what.

  • Data summaries

    For each node that has produced data: cells × genes, obs and var column names, embeddings and stored keys. Not the matrix.

  • Recent errors

    The last ten error log lines from this workflow, so “why did that fail?” needs no retyping.

  • Recently deleted nodes

    Kept in context so “put back the node you removed” still makes sense a few turns later.

  • Execution mode

    Whether the chat is in Guided or Auto mode, which shapes how large a plan the model proposes.

Oreumics — AI Chat
Oreumics AI Chat answering which clusters are T cells versus monocytes, grounded in the real marker genes from the analysis — Cluster 0 CD4 T cells (CD3D/CD3E), Cluster 2 classical monocytes (S100A8/S100A9/LYZ)

Captured from the app: the model names T-cell and monocyte clusters from the marker genes the DEG node computed, not from memory.

Function calling

85 read tools the model can call on its own.

Numbers are never guessed. When a question needs a value — how many doublets were removed, which pathways are enriched in cluster 3, whether the spatial neighbourhood test was significant — the model calls a tool, the backend reads the AnnData on disk, and only the small JSON result goes back. Up to five tool rounds per reply, then the answer. The data tools are offered as soon as the workflow has produced data or an error; the catalogue tools are there from the first message.

01

Data, QC & preprocessing

  • get_data_overview
  • get_qc_summary
  • get_doublet_summary
  • get_normalization_status
  • get_hvg_summary
  • get_pca_summary
  • run_obs_query
02

Clusters, markers & genes

  • get_cluster_composition
  • get_marker_genes
  • get_gene_expression
  • get_clustering_quality
  • get_batch_composition
  • get_annotation_summary
03

Spatial

  • get_spatial_summary
  • get_nhood_enrichment
  • get_spatial_domains
  • get_cellular_neighborhoods
  • get_co_occurrence
  • get_ripley
  • get_spot_deconvolution
04

Trajectory, velocity & CellRank

  • get_trajectory_summary
  • get_paga_connectivity
  • get_velocity_summary
  • get_cellrank_fate_summary
  • get_lineage_drivers
05

Bulk, methylation & ATAC

  • get_bulk_de_results
  • get_gsea_results
  • get_dmp_results
  • get_dmr_results
  • get_atac_qc_summary
  • get_motif_results
06

Pathways, activity & communication

  • get_pathway_enrichment
  • get_activity_results
  • get_cellphonedb_results
  • get_liana_results
  • get_ligand_receptor_results
07

Workflow, figures & provenance

  • get_workflow_graph
  • get_workflow_health
  • get_node_errors
  • get_provenance
  • list_visualizations
  • get_group_color_state
  • get_memory_estimate
  • get_resource_status
+

The node catalogue

list_nodes and describe_node expose every runnable node with its real parameter schema — types, ranges, option values — even on an empty canvas. The same schema validates every plan, so the model cannot invent a parameter that the node does not have.

Registered locally · the model sees tool names & small JSON results · count as of v0.25.0

Action Plans

A reply that changes the workflow arrives as a card you review.

When a fix needs a change, the model does not hand you a code block. It emits a structured Action Plan: a list of actions the app validates as a whole against the node schema before showing it. Nothing touches the canvas until you press Apply. An invalid plan is rejected outright — never applied in part.

AI Chat
Mode: Guided
My UMAP is one blob. What should I tune?

Querying analysis results…

Your Neighbors node ran with n_neighbors=15 over 30 PCs, and the PCA elbow is around PC 20. A larger neighbourhood usually separates the structure here.

Action Plan · 1 change
update_paramsNeighbors
n_neighbors:1530
ApplyApprove & Run

What Apply does

  1. 1

    The plan is preflighted as a whole

    Node types, parameter names, option values and edge handles are checked against the shared schema. One bad action rejects the whole plan.

  2. 2

    The canvas changes; nothing runs

    Parameters update, nodes appear, edges connect. Nodes downstream of a change are marked stale, so the next run recomputes only what depends on it.

  3. 3

    A snapshot is kept for Undo

    The previous graph is held so the last Apply can be reverted in one click. Undo is scoped to the workflow the plan was applied in.

Guided or Auto — a chip in the chat input

Guided (default): every plan waits for Apply and the model proposes one step at a time. Auto: plans apply and run on the canvas without a click, Undo still available, and the model plans the whole pipeline at once. Even in Auto, a plan that deletes a node or an edge falls back to an explicit Apply.

Oreumics — AI Chat
Oreumics AI Chat staging an Action Plan: create a doubletDetection node and wire it between Load and Quality Control, with green Apply and outlined Approve & Run buttons — nothing runs until you approve

Captured from the app: a plan that creates a Doublet Detection node and wires it between Load and Quality Control. Apply stages it; Approve & Run hands it to the agent.

The eight actions a plan can contain

update_params

Change parameters on an existing node. Downstream nodes are marked stale so the next run only recomputes what changed.

create_node

Add a node next to an anchor, with parameters filled in from the shared schema.

connect

Add an edge between two nodes (input handles included).

disconnect

Remove an edge. Treated as destructive — never auto-applied.

delete_node

Remove a node. Also destructive — always waits for your Apply.

run_node

Run a terminal node on the canvas; unrun upstream nodes are included automatically.

set_note

Attach or clear a note on a node.

label_branch

Name and colour a branch of the graph.

Approve & Run — the same card, one step further

Next to Apply sits Approve & Run. One approval lets the agent apply the plan, run it on the visible canvas, verify each node’s result and re-plan when a step falls short — within a budget, with Stop and Undo.

The agent loop
Per-workflow sessions

Each workflow tab keeps its own conversation.

Open a second workflow and the chat switches with it. The panel header shows the active workflow’s name, the last twenty messages of that conversation travel with each request, and Undo only ever reverts a plan in the workflow it was applied to. Ask “and what about the resolution?” and the model knows which resolution, on which graph.

  • One chat per workflow

    Conversation history, tool results and the Guided / Auto setting are stored per session on your machine.

  • Follow-ups stay coherent

    Multi-turn context lets a short follow-up refer to the node the previous answer changed.

  • Model per message

    The picker in the chat header switches provider or model at any time; the session continues.

PBMC_analysis_v3chat context
Nodes
9 · 8 completed · 1 error
Data
2,638 cells × 1,838 genes
Last error
findMarkers · empty cluster
Mode
Guided
Model
gpt-5.6-terra
PBMC_v3
Visium_skin
Bulk_DEG

Illustrative · each tab keeps its own chat

Bring your own key

Three providers, your account, your bill.

Paste an OpenAI, Anthropic or Google key in the chat settings. Keys are stored in the app on your PC and sent only to that provider; Oreumics runs no relay and adds no charge. The AI Chat, report generation and the nodes that call a model share the same defaults, so the model you see selected is the model that runs.

OpenAI

Default

gpt-5.6-terra

Default model. Requests go through the Responses API so the model keeps reasoning while it calls tools.

Also selectable

GPT-5.6 Sol / Luna, GPT-5.5, GPT-5.5 Pro, GPT-5.4 family

Anthropic

Default

claude-opus-5

Replies are read by block type, so reasoning blocks and refusals are handled rather than mis-parsed.

Also selectable

Claude Fable 5, Sonnet 5, Opus 4.8, Sonnet 4.6, Haiku 4.5

Google

Default

gemini-2.5-flash

Supported through the google-genai SDK. The Gemini list is offered as-is; it has not been re-verified as recently as the other two.

Also selectable

Gemini 2.5 Pro, Gemini 3 / 3.1 / 3.5 previews

Model identifiers as shipped in v0.25.0. Providers rename and retire models; the picker in the app is the current list.

What leaves the machine

Metadata goes to the model. Your matrices do not.

Every computation runs locally. The chat is the one optional component that talks to a provider, and what it sends is the workflow description and the small results of read tools — never the data those tools read.

  • Sent: your prompt, node types and labels, parameter values, run status and error messages, edges, and tool results such as cell counts, column names, top marker genes or a QC threshold
  • Never sent: the expression matrix, layers, raw count files, IDAT or fragment files, images — figures are stripped from every result before it reaches the model
  • Your key: stored in the app on this PC, used directly against the provider you chose, removable at any time from the chat settings

End matter

Try the Copilot free during the beta.

Request a Beta Access ticket, install Oreumics, paste a key from the provider you already use. Everything else on this page is in the app you download.