Free
Libraries for your Visual FoxPro projects, at a fixed version.
Type foxpack add jsonfox and the library lands in lib\jsonfox\ of your project. FoxPack records the exact commit and the SHA-256 of every file in foxpack.lock. Commit both to git, and anyone who clones the project gets the same files with foxpack restore.
for Windows · no account needed · 6.7 MB · v0.1.4
foxpack add jsonfox
foxpack list
foxpack verifyEvery command works on the current folder, or on the one given with -p. foxpack <command> --help explains each one.
FoxStyleSheet and VFPStretch are in the index and are open source (MIT). Each one is a single .prg with no dependencies, and the examples\showcase sample of FoxStyleSheet uses both.

The same form with the light and the dark theme.
Style sheets for VFP 9 forms. A theme written like CSS sets the colours, fonts and behaviour of every control of a form without touching the form: by base class, by your own class, by name and on events such as focus. It comes with 16 themes, among them a light and a dark one that the user switches with a sun and moon button.
foxpack add foxstylesheetResizes every control of a form when the window changes size: position, size, font, grid rows and list columns. It can also open the forms of an application at a zoom the user chooses once. Version 2.1.0 fixes a bug from 2024 that opened forms at 25 % of their size.
foxpack add vfpstretchIn FoxForge (0.3.22 or later), FoxForge > Current project > Add library… runs foxpack add, and building with Ctrl+F7 puts the files of foxpack.lock in the project and takes out the ones it no longer lists.
You do not need FoxStack to use FoxPack. FoxStack is what puts its commands in front of an agent. The installer also puts FoxStack, our local MCP server, on the machine if it is missing or older, and registers FoxPack in it. An agent such as Claude, with a single foxstack entry in its configuration, gets the FoxPack commands as tools: foxpack_add, foxpack_restore, foxpack_update, foxpack_remove, foxpack_list and foxpack_verify. If it detects Claude Desktop, Cursor or OpenCode, the installer offers to write that entry. To do it later, or in Claude Code (in your project folder):
foxstack setup claude-desktop
foxstack setup claude-codeFoxStack needs the 32-bit .NET 10 runtime, and its installer offers it when it is missing. From the console, FoxPack works without it.
Want Claude to manage your libraries through a single MCP entry? Meet FoxStack →
Put a foxpack.json in the root of your repository and tag that commit with the same version (v1.0). From then on anyone can install it with foxpack add github:your-user/mylib. To have it installed by name, add it to the index.
{
"name": "mylib",
"version": "1.0",
"description": "What it does",
"license": "MIT",
"files": ["MyLib.prg"],
"usage": "loLib = NEWOBJECT(\"MyLib\", \"MyLib.prg\")"
}FoxPack is written in Visual FoxPro and built with FoxCli: a console application like any other, with its help, typed options, exit codes and JSON output. Its source code is the example.
Windows 10 or 11. You do not need Visual FoxPro installed to run it: the runtime travels with FoxPack. The installer puts it in C:\Programas\FoxPack and on the PATH, so it works from any console.
If something does not add up, write to me: soporte@irwinrodriguez.dev