An experimental toolkit and library set for Gforth, built with AI assistance. The goal is modern Forth development: a unified toolchain (build, tests, lint, coverage), declarative dependencies, reproducible releases, and IDE integration. Long term — AI assistants in the Forth dev loop, from writing code to verification via fmix test, flint, and fcov.
All repositories live under VitaSound on GitHub. Locally they sit next to feco in the same parent directory (FECO_WORKSPACE): e.g. ~/fmix when feco is ~/feco, or /opt/vitasound/fmix for an isolated workspace — see docs/shell-setup.md.
Install everything:
cd /path/to/feco
./scripts/clone-ecosystem.sh # latest release tags (user mode)
./scripts/clone-ecosystem.sh --dev # main/master for development
./scripts/update-ecosystem.sh # refresh tags, clones, catalog, depsThe article that started this stack — about fmix:
- FMix: a package manager for Forth (English)
- FMix: пакетный менеджер для Forth (Russian)
frules ← Forth rules for AI assistants
│
fsemver · ttester · fenum · f ← shared libraries
│
fmix · flint · fcov · fmcp · fjson ← tooling
│
fhdlgen / fhdl ← HDL generators
| Project | Purpose | Version | Last updated | % coverage | Repository |
|---|---|---|---|---|---|
| frules | Compact Forth rules for Cursor and other AI assistants | 0.1.1 | 2026-05-27 | 2% | VitaSound/frules |
| fsemver | Semver requirement parser and matcher (~>, >=, …) for package.4th |
0.1.1 | 2026-05-24 | 100% | VitaSound/fsemver |
| ttester | Hayes/Ertl test framework + VitaSound extensions (T{ }T, expect-*) |
1.2.1 | 2026-05-24 | 29% | VitaSound/ttester |
| fenum | Generic containers (ulist, Elixir Enum–style type-tag dispatch) |
0.1.2 | 2026-06-08 | 98% | VitaSound/fenum |
| f | theForthNet package manager; compatibility layer | 0.2.4 | 2025-07-03 | 8% | VitaSound/f |
| fmix | Build tool, package manager, test runner (fmix new, packages.get, test) |
0.8.0 | 2026-06-08 | 75% | VitaSound/fmix |
| flint | Linter: warns on duplicate word definitions in .4th |
0.3.0 | 2026-06-08 | 87% | VitaSound/flint |
| fcov | Code coverage collection and reports (console, JSON, LCOV, HTML) | 0.3.2 | 2026-06-08 | 81% | VitaSound/fcov |
| fmcp | MCP stdio bridge: fmix, flint, fcov from Cursor and other MCP clients |
0.2.0 | 2026-06-08 | 71% | VitaSound/fmcp |
| fjson | Minimal JSON write, read-lite, and node tree (MCP NDJSON, toolchain) | 0.2.5 | 2026-06-08 | 100% | VitaSound/fjson |
| fhdlgen | Gforth HDL generator: IR project → module → port, Verilog emit | 0.3.1 | 2026-05-24 | 90% | VitaSound/fhdlgen |
| fhdl | Early Verilog generator from Forth DSL (fhdlgen predecessor) | — | — | 76% | VitaSound/fhdl |
Versions are the latest Git tag on GitHub: ./scripts/fetch-tags.sh → data/tags.json (fetched_at: 2026-06-08T10:21:44Z). Coverage (definition coverage via fcov run fmix test): ./scripts/fetch-coverage.sh → data/coverage.json (fetched_at: 2026-06-08T10:22:38Z). Scripts: ./scripts/clone-ecosystem.sh, ./scripts/update-ecosystem.sh. Shell: docs/shell-setup.md. Agent instructions: AGENTS.md.
New project:
fmix new <name> # scaffold: package.4th, tests/, .gitignore, …
cd <name>
~/frules/install.sh . gforth # Forth rules → .cursor/rules/
fmix packages.get
flint
fmix test
fcov run && fcov report # optionalExisting project:
cd <project>
~/frules/install.sh . gforth # if rules not installed yet
fmix packages.get # dependencies from package.4th
flint # lint (optional)
fmix test # *_test.4th
fcov run && fcov report # coverage (optional)Cursor: frules — assistant rules for .4th (symlinks in .cursor/rules/); fmcp — MCP server for fmix / flint / fcov from the IDE. See frules/README.md, fmcp/README.md.
- FMix: a package manager for Forth · FMix: пакетный менеджер для Forth — DEV articles
- frules/README.md — installing rules, dialects (
gforth/ans), profiles (full/core) - frules/AGENTS.md — short agent summary
- fmix/AGENTS.md — AI context for the whole toolchain
- fhdlgen/doc/ecosystem.md — detailed stack overview, compatibility matrix, coverage baseline
