First run
activate is the only setup command, and it is worth knowing what it does —
because it touches your shell profile and performs a security handshake you
cannot skip.
The four things activation does
Section titled “The four things activation does”-
Ensure
miseis installed. If mise is already onPATH, nothing happens. If not, it is installed. -
Run
mise trust. mise refuses to execute configuration it has not been told to trust, and a repository cannot trust itself — that is the point of the mechanism. This is required once per machine. -
Register the commands into your shell profile.
$PROFILEon Windows;~/.bashrcor~/.zshrcon POSIX. All three commands —polyforge,learn,forge— are wired up together. -
Print the tool list. Not install it. You see exactly what is declared before anything is fetched.
Running it
Section titled “Running it”.\polyforge.ps1 activate./polyforge.sh activateAfter activation, polyforge activate (the wrapper subcommand) does the same
work — use it if trust was ever reset or your profile was rebuilt.
Where the commands work
Section titled “Where the commands work”The wrappers walk up the directory tree looking for the workspace root, so
they work anywhere inside the PolyForge repository — including deep inside
Workspace/Go/some-project/internal/.
They do not work outside it. That is intentional: PolyForge manages a workspace, not your whole system.
Verifying the result
Section titled “Verifying the result”polyforge doctordoctor checks that mise is present and trusted, that the wrapper resolved on
PATH, and that the configuration fragments parse. If something is wrong, it is
the first place to look — then
troubleshooting.
What lives where after activation
Section titled “What lives where after activation”polyforge/├── .cache/ # git-ignored — tool installs and caches land here├── .config/mise/conf.d/├── mise.toml├── Workspace/└── Dev/The repository stays clean: everything mise downloads goes into .cache/, which
is git-ignored. polyforge clean empties it.
- Your first project
- Explicit installs — why nothing was downloaded yet