Write a goal.md, FermiLink takes care of autonomous scientific simulations and optimization at both laptops and HPCs
Project description
Write a goal.md for scientific simulations!
FermiLink reads a simple markdown file describing your scientific computing goal,
then autonomously runs multi-job multi-day simulations on your laptop or HPC clusters.
Key Features
🔬 Autonomous Scientific Simulations (stable)
Describe a simulation goal in plain language. FermiLink loads the suitable package knowledge base, generates input files, submits jobs, monitors progress, analyzes the data, and generate a brief simulation report. It can sustain multi-task multi-day HPC runs.
fermilink loop goal.md # long-running simulations on workstations or HPC
fermilink reproduce paper.tex # reproduction of a full research paper
fermilink research goal.md # full research-paper-scale, multi-task campaigns
⚡ Autonomous Code Optimization (beta)
Apply FermiLink to your existing scientific code with a performance goal. It iteratively modifies hot paths and runs deterministic benchmarks.
At the end of the day, it provides optimized scientific code with improved speed while preserving computational accuracy.
fermilink optimize goal.md # iterative code with correctness guarantees
Quickstart
# 1. Install
pip install fermilink
# 2. Set up an AI agent (pick one)
fermilink agent codex # or: claude, gemini
# 3. Install a scientific package knowledge base
fermilink install meep # 150+ packages available
# 4. (Optional) Configure the default SLURM HPC profile
fermilink hpc
# 5. Write your goal.md (see example above), then run
fermilink loop goal.md
First time? Just run
fermilinkwith no arguments. Then, an interactive setup wizard will walk you through everything.
Design principles
The key design principle of FermiLink is the segregation of package knowledge bases and simulation workflows.
Supported Workflows
FermiLink supports the following six major commands for various simulation workflows:
| Command | Best for | Duration | Recommended Environment |
|---|---|---|---|
exec |
Quick one-off simulations | Minutes | Laptop / workstation |
chat |
Interactive conversation with agents | Hours | Laptop / workstation |
loop |
Iterative jobs with PID/SLURM monitoring | Hours -> days | Workstation / HPC |
reproduce |
Multi-task, paper-scale reproducation of papers | Days -> weeks | HPC clusters |
research |
Multi-task, paper-scale research | Days -> weeks | HPC clusters |
optimize |
Code performance tuning (beta) | Hours | Any |
Apart from the above simulation workflows, it also supports an optimize workflow for optimizing the performance of scientific packages.
Interaction surfaces
FermiLink isn't just a CLI tool. Pick the interface that fits you:
- Command line —
fermilink exec/loop/reproduce/research/optimize goal.mdfor headless, scriptable autonomy - Web UI —
fermilink startlaunches a ChatGPT-style browser interface for interactive sessions - Telegram bot —
fermilink gatewayconnects to Telegram so you can run and monitor HPC jobs from your phone
Built-in Scientific Packages
FermiLink ships with 150+ knowledge bases for packages spanning multiple scientific domains. Install any of them with a single command:
fermilink install <package> # e.g., meep, lammps, pyscf, openfoam
fermilink list # see all installed packages
Don't see your package? Compile your own local knowledge base:
fermilink compile /path/to/your/code
Browse the full package list →
Build Your Own Package Knowledge Base
If you have a research pipeline described in a paper or group-specific workflow, you can turn them into a FermiLink-compatible knowledge base:
# Compile a local code into a knowledge base
fermilink compile /path/to/my-simulation-code
# Recompile after updating your code
fermilink recompile my-simulation-code
This means FermiLink can autonomously operate any scientific code, not just the 150+ that ship built-in.
Documentation
| Resource | Link |
|---|---|
| Full documentation | fermilink.org |
| Installation guide | fermilink.org/installation |
| Laptop tutorial | fermilink.org/tutorial_laptop |
| HPC tutorial | fermilink.org/tutorial_hpc |
| Architecture | fermilink.org/architecture |
| API reference | fermilink.org/api |
Citation
If FermiLink is useful in your research, please cite:
- Gang Meng†, Andres Felipe Bocanegra Vargas†, Xinwei Ji†, Federico Garcia-Gaitan, Felipe Reyes-Osorio, Jalil Varela-Manjarres, Yafei Ren, Mohammadhasan Dinpajooh, Branislav K. Nikolić, Tao E. Li. FermiLink: A Unified Agent Framework for Multidomain Autonomous Scientific Simulations. arXiv:2604.03460 (2026).
Contributing
We welcome contributions, from bug reports to new package knowledge bases. See CONTRIBUTING →
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fermilink-0.3.3.tar.gz.
File metadata
- Download URL: fermilink-0.3.3.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b270a33350e5748bbfef616a87d840a90d0b991430e768164a6d052f4fce29d
|
|
| MD5 |
529fdb90f1e4ea86515a300dcbbdfed5
|
|
| BLAKE2b-256 |
e6f56f8b6fed6a9bc0385af70c8c84fa85087a9989790deac38105d463ffbb08
|
File details
Details for the file fermilink-0.3.3-py3-none-any.whl.
File metadata
- Download URL: fermilink-0.3.3-py3-none-any.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ec1aa53aa2e464a0103175d25c4f885f83c4ca1695c6cb975579b4ce892ed80
|
|
| MD5 |
ea117b24fd44588aa8e4706c575c45f9
|
|
| BLAKE2b-256 |
9f4ff071672433eaa3f5f8671827abc608ffcae4c35e84abb317d935fb0cb5a4
|