Automatic dependency-resolving build tool for modern Fortran projects — no makefiles, no boilerplate. Package manger highly integrated with GitHub, install and fetch project dependencies. Add instrospective doctests to your Fortran project and exploit AI-powered programmatic buildings with the provided AI skill.
| ⚡ Zero-configuration builds Drop FoBiS into any Fortran project and run fobis build. It scans sources, resolves all use, include, and module dependencies automatically, and compiles in the correct order — no makefiles, no boilerplate. Convention-based discovery finds src/, source/, and app/ directories automatically. Quick start |
📄 fobos — the FoBiS makefile A concise INI-style configuration file replaces makefiles entirely. Define multiple build modes, templates, variables, custom rules, feature flags, multi-target sections, and hooks — all in one readable file. fobos reference |
| 🌐 GitHub integration Declare dependencies in a [dependencies] fobos section — fobis fetch clones, pins to branch/tag/rev/semver, and pre-builds them; fobis build picks them up automatically. Reproducible builds via fobos.lock. Install any GitHub-hosted FoBiS project directly with fobis install user/repo. Fetch deps · Lock file |
🏗️ Named build profiles & feature flags One-word compiler flag presets ( debug, release, asan, coverage) for every supported compiler. Feature flags let you activate named compile-time options without separate build modes — mix and match freely. Build profiles · Feature flags |
🧪 Integrated test runner & coveragefobis test discovers, compiles, and runs all Fortran test programs — no external harness needed. fobis coverage generates HTML/XML reports via gcovr or lcov and can fail CI when coverage drops below a threshold. Test runner · Coverage |
🔬 Introspective doctests Embed micro-unit-tests directly inside Fortran comment docstrings. FoBiS generates, compiles, and runs volatile test programs automatically — inspired by Python's doctest module, no test harness needed. Doctests |
| ⚡ Build cache Content-addressed cache keyed on source commit, compiler, and flags — reuses object files across clean builds and branch switches. fobis cache list/clean for housekeeping. Build cache |
🤖 Introspect & Claude Code skillfobis introspect --all emits machine-readable JSON of the full project graph — sources, compiler flags, dependencies, targets. Powers the bundled /fobis Claude Code skill for AI-assisted builds right in your editor. introspect · Claude skill |
| 📋 Scaffold — boilerplate sync Keep CI workflows, docs configs, license files, and scripts identical across all your Fortran repos. fobis scaffold status shows drift; fobis scaffold sync fixes it; fobis scaffold init bootstraps new projects. All templates bundled inside FoBiS — no extra dependencies. Scaffold reference |
🧠 LLM commit messages Generate well-formed Conventional Commits messages for staged changes via a local LLM. Supports Ollama and any OpenAI-compatible endpoint (LM Studio, vLLM, llama.cpp) — no cloud account, no API key, no data leaving your machine. LLM commit guide |
Modern Fortran's module system is powerful — but tracking inter-module compilation order by hand in a makefile quickly becomes a nightmare as project size grows. Every time you add a module, rename a file, or restructure directories, the makefile needs manual updates.
FoBiS solves this completely. It parses source files on every invocation, rebuilds the dependency graph from scratch, and compiles in the correct order — with no configuration required for simple projects.
# That's it. FoBiS finds all programs, resolves all dependencies, compiles.
fobis buildFor complex projects, a single fobos file in the project root replaces makefiles entirely:
[modes]
modes = debug release
[debug]
compiler = gnu
cflags = -c -O0 -g -Wall
build_dir = ./build/debug/
[release]
compiler = gnu
cflags = -c -O3
build_dir = ./build/release/fobis build -mode release| zero-configuration build | simplify complex dependency |
|---|---|
![]() |
![]() |
| GH integration, project install | GH integration, dependancies fetch |
![]() |
![]() |
fobis scaffold keeps CI workflows, docs configs, license files, and other boilerplate in sync across all your Fortran repos. All templates are bundled inside FoBiS — no external dependencies.
fobis scaffold status # drift report: OK / OUTDATED / MISSING per file
fobis scaffold sync --dry-run # preview diffs without writing
fobis scaffold sync --yes # apply all updates silently
fobis scaffold init # bootstrap a new project (creates src/, docs/, .github/, …)
fobis scaffold list # list all managed files and their categoriesProject variables ({{NAME}}, {{AUTHORS}}, {{REPOSITORY}}, …) are resolved from the fobos [project] section, the git remote URL, and git config. See the scaffold reference for full details.
fobis commit generates Conventional Commits messages for your staged changes using a local LLM — no cloud account, no API key, no data leaving your machine.
# Stage your changes as usual
git add fobis/Commit.py fobis/cli/commit.py
# Generate the message (print only — you review before committing)
fobis commit
# Generate and commit in one step after interactive review
fobis commit --apply
# Persist your LLM settings
fobis commit --init-config # creates ~/.config/fobis/config.ini
fobis commit --show-config # inspect effective settingsWorks with Ollama (default) and any OpenAI-compatible server (LM Studio, vLLM, llama.cpp). The default model is qwen3-coder:30b-a3b-q4_K_M — a fast mixture-of-experts model that produces excellent commit messages.
See the LLM commit messages guide for setup instructions, model recommendations, and worked examples.
Projects using FoBiS:
- ADAM — Accelerated fluid Dynamics on Adaptive Mesh refinement grids | GitHub
- BeFoR64 — Base64 encoding/decoding library for Fortran | GitHub
- FACE — Fortran ANSI Colors and Escape sequences | GitHub
- FiNeR — Fortran INI ParseR and generator | GitHub
- FLAP — Fortran command Line Arguments Parser | GitHub
- FUNDAL — Fortran UNified Device Acceleration Library | GitHub
- FOSSIL — FOrtran Stereo (si) Litography parser | GitHub
- MORTIF — MORTon Indexer (Z-order) Fortran environment | GitHub
- MOTIOn — Modular (HPC) Optimized Toolkit (for) IO (in fortra)n | GitHub
- PENF — Portability Environment for Fortran | GitHub
- StringiFor — Strings Fortran Manipulator with steroids | GitHub
- VecFor — Vector algebra class for Fortran | GitHub
- VTKFortran — pure Fortran VTK (XML) API | GitHub
Stefano Zaghi — stefano.zaghi@gmail.com · GitHub
FoBiS is an open source project distributed under the GPL v3 license. Anyone interested in using, developing, or contributing to FoBiS is welcome — see the contributing guidelines.



