sufumi/JPM/docs
JPMIn devGo · Turso

Jasn Package Manager / docs

Your registry, your rules.

01

Overview

JPM is a developer-focused package manager that downloads tools from a remote registry and tracks every installation locally. It resolves semver constraints and runs install steps defined in a minimal instruction format.

InfoThe registry lives in Turso/libSQL; your machine keeps a local SQLite database of installs and history.
02

Requirements

  • Go 1.24.4+
  • A Turso account with database URL and auth token
  • config/.env with URL and TOKEN values
WarningThe config is embedded at build time using Go embed, so config/.env must exist before building.
03

Installation

Build from source

bash
git clone https://github.com/JasnRathore/jpm cd jpm
bash
printf "URL=libsql://your-db.turso.io TOKEN=your-token " > config/.env
bash
go build -o jpm .

Download release

Download the latest binary, place config/.env next to it, then initialize the local database.

Downloads disabledPublic binaries are disabled while JPM is in active development.
04

Initialize Database

JPM stores local history and tracked files in jpm.db. Initialize it once before use:

bash
./jpm initdb
InfoSafe to run multiple times — it will not overwrite existing data.
05

Commands

CommandDescription
initdbInitialize local SQLite schema
search [name]Browse or search packages
install <name>[@version]Download and install a package
listShow installed packages
update [name]Update one or all packages
remove <name>Uninstall a package
info <name>Show detailed package info
06

Examples

bash
./jpm search nodejs ./jpm search nodejs --all ./jpm install nodejs@^1.2.0 ./jpm list --outdated ./jpm update --all
07

How Installation Works

  • Fetch metadata from the Turso registry.
  • Resolve semver constraints to a release.
  • Download and verify the archive checksum.
  • Parse the release instruction list.
  • Execute steps (extract, move, add PATH, etc.).
  • Record everything into jpm.db.
08

Instruction Language

text
# Example instruction set EXTRACT app-v1.2.3.zip CHMOD app/bin/mytool SET_LOCATION app/ ADD_TO_PATH app/bin DELETE app-v1.2.3.zip
InstructionDescription
EXTRACT <file>Unpack a zip/tar archive
CHMOD <path>Apply executable permissions
SET_LOCATION <dir>Set install location
ADD_TO_PATH <dir>Append a directory to PATH
DELETE <path>Remove a file or folder
Found an error? Docs are open source.Edit on GitHub