Open Source — MIT Licensed

One platform for your entire lab workflow

From instrument discovery to test execution to publication-ready reports.

574 instruments · 136 manufacturers · MIT licensed

galois-edge
$ galois-edge status
  galois-edge         active (running)
  galois-edge-daemon  active (running)
  Mesh:    tailnet-lab-01.ts.net
  Instruments: 4 connected
    Keithley 2400    GPIB::24
    Keysight 34461A  USB
    Rigol DS1054Z    LAN
    SRS SR830        GPIB::8
  gRPC:    :50051 ready
  WebSocket: :8765 ready
Open Source

Edge daemon for instrument control

574 profiles. 136 manufacturers. galois-edge connects any SCPI instrument to a secure mesh network with profile-driven control, gRPC, and WebSocket APIs.

  • Windows MSI, Linux systemd, Raspberry Pi ARM64
  • Zero dependencies — two static binaries
  • Encrypted mesh networking (Tailscale/Headscale)
  • Auto-discovery: GPIB, USB, LAN, Serial
Galois Sequences

Replace NI TestStand. $149/seat, not $5,000.

Cloud-native test sequencing with visual builder, numeric limits, full traceability, and production locking. Works with any SCPI instrument.

Sequence Builder
ActionSet voltage to 3.3V
Wait500ms
Numeric LimitMeasure voltage 3.2V–3.4V
ActionSet voltage to 5.0V
Wait500ms
Numeric LimitMeasure voltage 4.9V–5.1V
8 step types
Numeric Limit, String Value, Pass/Fail, Action, Wait, Loop, Condition, and Sequence Call.
Full traceability
Measured value, limits, raw SCPI sent/received, instrument ID, operator, DUT serial, step duration in milliseconds.
Production locking
Lock sequences for production. Create new versions for iteration. Unique constraint per project, name, and version.
Execute on real hardware
gRPC connection to edge daemons. Millisecond timing. 6 comparison operators: GELE, GELT, GTLE, GTLT, EQ, NE.

Ask Evariste to run your sequence and generate a report when it's done.

Keithley 2400 — Voltage

500msLive

Keysight 34461A — Current

250msLive

Rigol DS1054Z — CH1 RMS

1sLive
Real-time Monitoring

Stream live data from any instrument

Watch measurements arrive in real time. Every connected instrument can push live readings to configurable dashboard widgets — no polling scripts, no manual refresh.

  • Sub-second SSE streaming updates
  • Multi-instrument dashboards
  • Configurable polling intervals — 100ms minimum
  • Connection status indicators — Live / Disconnected
  • Start/stop streams on demand

Ask Evariste to diagnose noisy readings — it collects 100 samples, computes statistics, and identifies systematic vs random noise.

Reports

From test data to publication-ready PDF in one click

Three paths to a finished report — pick the one that fits your workflow.

  1. 1
    AI-generated

    "Generate a report for this run"

    Complete LaTeX with executive summary, results table, color-coded pass/fail, headers/footers.

  2. 2
    Template-based

    Custom LaTeX templates with data binding variables

    <<.Sequence.Name>>, <<range .Results>>, helper functions.

  3. 3
    Manual LaTeX editor

    Monaco editor with syntax highlighting

    Live PDF preview, Tectonic compilation, keyboard shortcuts.

Iterate on reports conversationally — ask Evariste to add a section, reformat a table, or summarize results differently.

report-editor
\documentclass{article}
\begin{document}
\title{Power Supply Validation}

\section{Results}
\begin{tabular}{lcr}
  Step & Measured & Status \\
  Set 3.3V &  & \pass \\
  Measure & 3.31V & \pass \\
  Set 5.0V &  & \pass \\
  Measure & 4.98V & \pass \\
\end{tabular}
\end{document}

Power Supply Validation

Results

StepMeasuredStatus
Set 3.3VPASS
Measure3.31VPASS
Set 5.0VPASS
Measure4.98VPASS
Analyze

Cloud notebooks with instrument access

Docker-isolated Jupyter kernels with direct instrument access. Write Python, connect to any bench instrument via pyvisa-galois, and analyze data — all from your browser.

  • Docker-isolated kernels with per-session containers and resource limits
  • pyvisa-galois gives notebook cells direct access to edge instruments
  • Versioned datasets with JSON schemas, batch ingestion, full-text search
  • Project-scoped file management with syntax-highlighted editor
In [1]:
import pyvisa
rm = pyvisa.ResourceManager("@galois")
dmm = rm.open_resource("GPIB0::22")
In [2]:
voltage = float(dmm.query(":MEAS:VOLT:DC?"))
print(f"Measured: {voltage:.4f} V")
Out [2]:
Measured: 3.3142 V
Python 3.11 — Running
Collaborate

Your whole lab, one platform

Teams

  • Owner / Admin / Member roles with RBAC
  • Invite codes with expiration
  • Project-scoped resources (sequences, datasets, reports, topologies, notebooks)
  • Team switching in sidebar

Compliance

  • Every action logged: actor, timestamp, action type, resource, metadata
  • Database-enforced tenant isolation (PostgreSQL Row-Level Security)
  • Encrypted mesh networking (WireGuard via Headscale)
  • Ready for FDA 21 CFR Part 11 and ISO 17025

Visual drag-and-drop topology editor — map your lab wiring with 4 node types: Instrument, Processor, Data Store, Output.

Audit Log

Alex created sequence 'Power Supply Validation'

created2 min ago

Maria ran test run #47

executed5 min ago

System locked sequence v2.1

locked12 min ago

Alex generated report for run #47

generated15 min ago

Maria invited david@lab.edu

invited1 hr ago
Evariste
You: Hey Ev, measure the IV curve on the Keithley 2400
       from 0 to 100mA in 10 steps.

Evariste: I see you ran a similar sweep last Thursday
        on the same device — 0 to 50 mA, 5 steps.
        I'll reuse that config with your new range.

  ✓ Connected to Keithley 2400 (GPIB::24)
  ✓ Configured source current mode
  ✓ Running 10-step sweep: 0 → 100 mA
  ✓ Captured 10 voltage measurements

  Results saved to project "GaN FET Characterization".
  Peak voltage: 2.34V at 100mA.
  Want me to plot this against last Thursday's run?
AI Assistant

Talk to your instruments

Evariste works across the entire platform — controls instruments, runs sequences, generates reports, diagnoses issues, and searches your equipment manuals. Describe measurements in plain English, run multi-step test sequences, and generate publication-ready reports with safety checks before every command.

Natural language instrument control
Describe what you want to measure. Safety confirmations trigger automatically for voltage >50V or current >1A.
Equipment manual RAG
Upload PDF instrument manuals. Evariste searches relevant sections for context on your current instrument and query.
Dynamic tool generation
Every connected instrument's commands automatically become AI tools at runtime. New instrument? AI can use it immediately.
Multi-turn agentic reasoning
Up to 10 autonomous iterations per request. Streaming SSE responses. Chains operations — measure, analyze, report — without intervention.
Statistical diagnostics
Snapshot analysis: mean, std dev, autocorrelation, sparkline. Step response analysis with settling time computation.
Report generation
"Generate a report" produces complete compilable LaTeX. Iterate conversationally — add sections, reformat tables, summarize differently.

Start free. Deploy in 5 minutes.

Sign up for Galois Cloud — no credit card required. Connect your instruments with the free, open-source daemon. Build your first test sequence, generate a report, and invite your team.

Sign up (no CC)Install daemonRun a sample sequenceGenerate a report