Skip to content
Simple package manager for urbit
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


package hash sync ship


Simple package manager for urbit

Package spec

The package specification defines package metadata (name, etc.) as well as all the files and prerequisite packages that needs to be installed.


  "name": "package",
  "description": "A package manager for urbit",
  "hash": "0vg.frcc0.nh5a0.trbqa.1rqe5.3c1tq.kg69n.8fo2f.jkcuo.ge1gc.tdd59",
  "homepage": "",
  "items": [
      "type": "package",
      "url": ''
      "type": "fileset",
      "base": "",
      "rels": [


Unfortunately, you can't use %package to install itself if it's not already installed, so the traditional methods are available (once installed, you can use the package.json in this repository to install updated versions).

Urbit Sync

You can sync from the %dist-package desk on ship.

dojo> |sync %home ~dist-ship %dist-package


Assuming you have a desk mounted:

$ cp -a src/* /path/to/pier/home/


Poke with a desk and a URL of a package specification.

The URL can point to any web server. It can be a github page of a published package or a local web server for local development (instead of manually copying your app files from your local git repo to the urbit unix mount on every change).


Install Package

Install a package into a desk with %xyz prefix (will create %xyz-package desk)

> :package|install %xyz ""

For copying local dev app:

:package|install %dev "http://localhost.localdomain:8080/pages/packages/mypackage.json"

Note: When using ++ epur with http://localhost it will set the secure flag and this will cause an http parse error. You can use something like http://localhost.localdomain as a workaround (assuming it is defined in /etc/hosts).


Resume in case installation stopped:

> :package [%resume %xyz]


  • Web interface for installing packages without the dojo
  • Poll URLs for changes and autosync (copy changed files as soon as they're saved in your IDE)
You can’t perform that action at this time.