A source-first package manager that installs software straight from GitHub (and other configurable forges): clone → resolve deps → build → install, with clean, dependency-aware removal.
License note: gitfull is currently under a temporary, restrictive, all-rights-reserved license while it's young and unreviewed for security — see
LICENSE. It is not yet open source. In short: you can download it, review it, and run it yourself for personal, non-commercial use; you can't redistribute it or use it commercially without permission.
The easiest way, on any Linux distro (or macOS via Homebrew, or FreeBSD):
./install.shThis detects your package manager (apt, dnf, yum, pacman,
zypper, apk, xbps, emerge, brew, or FreeBSD's pkg), checks
whether you already have a C compiler, make, git, and curl, and —
only if something's missing, and only after asking you — installs just
those specific tools using your distro's native package manager. It then
builds gitfull and installs it to /usr/local/bin.
./install.sh --yes # don't prompt before installing missing build tools
./install.sh --no-deps # skip the dependency check/install step entirely
PREFIX=$HOME/.local ./install.sh # install somewhere else, no root neededOr build it by hand:
make
sudo make install # installs to /usr/local/bingitfull itself has exactly one build/runtime requirement beyond a C
compiler and libc: the git and curl binaries on your PATH. It
does not link against libcurl, libgit2, or any JSON library — it
shells out to the git/curl CLIs and has a small built-in JSON
reader/writer. There is nothing distro-specific (like -devel headers)
required to build it.
gitfull install <package> # best-match repo, latest release tag
gitfull install --edge <package> # clone HEAD of the default branch
gitfull install --binary <package> # fetch a prebuilt GitHub Release asset
gitfull install user@repo --edge <package> # install a specific fork, at HEAD
gitfull install forge:user@repo <package> # install from a specific configured forge
gitfull remove <package> # remove installed files only
gitfull remove -D <package> # also remove build scripts + orphaned deps
gitfull list # list installed packages
gitfull search <query> # show ranked candidate repos
gitfull install foo (no user@) queries the GitHub Search API for
repositories matching foo, then ranks candidates by a composite score:
score = stars_normalized * 0.6 + recent_commit_activity * 0.4
"Recent commit activity" = commits in the last 90 days (via the GitHub
/commits API), so an abandoned repo with a huge star count loses out to
a smaller but actively maintained one, per the "most starred and
developing" requirement. Exact owner/repo name matches are boosted.
user@name skips ranking and resolves directly to github.com/user/name.
Every install writes a manifest to ~/.gitfull/installed/<pkg>.json
recording:
- every file gitfull put on disk (from
make install/ binary placement) - the source checkout path
- build scripts/artifacts (build dir, generated Makefiles, etc.)
- which dependencies were installed on this package's behalf, and whether each dependency was already present before this install (so we never touch something the user installed independently)
gitfull remove pkg deletes only the files in that manifest's files list.
gitfull remove -D pkg additionally deletes the source/build tree and walks
the dependency list; a dependency is only uninstalled if no other installed
package still depends on it (checked against every other manifest's
depends_on list).