Skip to content

just-makeit

CI Docs

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.

just-makeit new my_project --object my_object just-makeit: creating project 'my_project'   create native/inc/my_object/my_object_core.h create native/src/my_object/my_object_core.c create native/src/my_object/my_object_ext.c create native/tests/test_my_object_core.c create src/my_project/my_object.pyi create src/my_project/tests/test_my_object.py create CMakeLists.txt Makefile pyproject.toml …   Done! cd my_project && make && make test   cd my_project && make && make test [ 27%] Building C object ...core.c.o [ 72%] Linking C shared library ... [100%] Linking C shared module my_object.so [100%] Built target my_object   1/1 Test #1: test_my_object_core ... Passed 0.00 sec 100% tests passed, 0 tests failed out of 1   test_create ... ok test_step_runs ... ok test_steps_shape_dtype ... ok -------------------------------------------- Ran 8 tests in 0.026s OK

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

. <(curl -fsSL https://just-buildit.github.io/just-makeit/install.sh)
pip install just-makeit && just-makeit install-deps [path]
uv tool install just-makeit && just-makeit install-deps [path]
. <(curl -fsSL https://just-buildit.github.io/just-makeit/install.sh) ok Python 3.12 ok cmake 4.2.3 (already installed) ok C compiler (/usr/bin/gcc) (already installed) --> just-makeit (/tmp/jm-venv) ==> Setting up venv at /tmp/jm-venv ok numpy 2.4.6 ok just-makeit 0.19.27   ==> Venv activated — just-makeit is ready:   jm new my_project --object my_object

Note

install-deps installs the build toolchain — cmake, a C compiler, and numpy — into a Python venv, creating and activating it for you. 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.

Info

Installer detects your platform and installs system dependencies via the available package manager:

Platform Detection order
Linux apt · dnf · pacman · zypper · apk
macOS Homebrew

Get it with Docker

docker run --rm -it ghcr.io/just-buildit/jm-examples-linux:latest

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 Workflow
All generated file layouts Artifacts
Tour every feature in one project Feature tour
Runnable bundled examples Examples
Generated C and Python API reference Workflow → Generated C API
Command options Commands → Scaffold

Requirements

  • Python 3.9+
  • CMake ≥ 3.16
  • A C99 compiler (GCC, Clang, MSVC/MinGW)
  • NumPy (runtime, for generated projects)

Authors

Matthew T. Hunter, Ph.D. and Claude Code