The algorithm is the interesting part. The scaffolding around it — C library, Python bindings, CMake, tests, and packaging — is the same boilerplate every project needs and nobody wants to write again.
just-makeit new
Generates everything, tested and passing, so you can start on the algorithm immediately.
A complete C library and Python extension — both tested and passing — before
you write a line of your algorithm. Fill in step() and ship.
Get it¶
Note
install-deps installs cmake, a C compiler, pkg-config and, on Linux,
patchelf (auditwheel needs it to repair a wheel) through your system
package manager (only when one of them is missing),
then numpy and just-makeit into a Python venv. The curl installer does the
same, and also activates the venv in your shell; just-makeit install-deps
prints the source <venv>/bin/activate line to run. The venv is created at
/tmp/jm-venv by default. To put it elsewhere, append the path to any of the
commands above — e.g. . <(curl -fsSL …/install.sh) ~/my-venv. Both take
--check to report what is missing without installing anything; the curl
installer also takes --force to reinstall just-makeit.
Info
The installer picks the package manager from your platform — on Linux,
from the ID in /etc/os-release:
| Platform | Package manager | Distros (ID) |
|---|---|---|
| Linux | apt | ubuntu, debian, linuxmint, pop |
| Linux | dnf | fedora, rhel, centos, rocky, almalinux |
| Linux | pacman | arch, manjaro, endeavouros |
| Linux | zypper | opensuse*, sles |
| Linux | apk | alpine |
| macOS | Homebrew | — |
On any other distro it installs no system packages and names the missing ones for you to install yourself.
Get it with Docker¶
Tip
No install needed - the container prints a welcome message with everything you need:
- pre-built example projects in
~/examples/ - commands to browse or re-run them
- a quickstart for your own project
Next steps¶
| Goal | Page |
|---|---|
| Scaffold → implement → test loop | Workflows |
| All generated file layouts | Artifacts |
| Tour every feature in one project | Feature tour |
| Runnable bundled examples | Examples |
| Generated C and Python API reference | Workflows → Project layout & API |
| Command options | Commands → Scaffold |
Requirements¶
- Python 3.9+
- CMake ≥ 3.16
- A C99 compiler: GCC or Clang, or on Windows clang-cl — see Does it work on Windows?
- NumPy (runtime, for generated projects)
Authors¶
Matthew T. Hunter, Ph.D. and Claude Code