# Downloads

Every package as a tarball, for installing without a registry: a `@bitskiff/` name resolves nothing; `npm install` takes a URL as well as a name.

Install into a project directory -- npm walks up to the nearest `package.json` -- and make it ESM, which every example here is:

```sh
npm init -y
npm pkg set type=module
```

Every package here is [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0), and each tarball carries the text.

## JavaScript

| Package | What it is | Version | Size | Install | sha256 |
|---|---|---|---|---|---|
| `@bitskiff/cli` | The Bitskiff command-line tool for managing a project. | 0.3.0 (build bfaf893f7) | 481.1 kB | `npm i -g https://docs.dev.bitskiff.com/downloads/0.3.0/bitskiff-cli.tgz` | `6208419bbe9df82c7166dd8f7aea6b17cfd91ed640c4b075a0c4471ef5107df7` |
| `@bitskiff/host` | The Bitskiff host SDK for a browser page or an Electron renderer. | 0.3.0 | 1.1 MB | `npm install https://docs.dev.bitskiff.com/downloads/0.3.0/bitskiff-host.tgz` | `cad864f4d137023a817b63311613179bcdb12acf7fa6033a471d7d614c63c02c` |
| `@bitskiff/host-node` | The Bitskiff host SDK for a headless Node 22 process. | 0.3.0 | 1.0 MB | `npm install https://docs.dev.bitskiff.com/downloads/0.3.0/bitskiff-host-node.tgz` | `72a3ab797474d6366df1fa2e5916f52cb81a3c35235479fbb3df1aeb94e93e38` |
| `@bitskiff/client` | The Bitskiff client SDK for a browser page. | 0.3.0 | 772.6 kB | `npm install https://docs.dev.bitskiff.com/downloads/0.3.0/bitskiff-client.tgz` | `79d408c6efc20b299085d99a3616f27c37afeefa8063495349b45d0b7ac1220d` |
| `@bitskiff/ui-kit` | Framework-free UI elements for a Bitskiff client page. | 0.3.0 | 44.9 kB | `npm install https://docs.dev.bitskiff.com/downloads/0.3.0/bitskiff-ui-kit.tgz` | `368d8731c8a427d8bd83624126015df0d4a7af673e9c87341cac1267cd3164a2` |

These builds talk to the dev service (`https://api.dev.bitskiff.com`); another environment's release carries its own address.

`@bitskiff/host-node` installs `@bitskiff/host` as well: the dependency is the URL of the host tarball on this page, and both land at the top level, one copy each.

The command-line tool installs globally, which is what puts `bitskiff` on your path.

Each URL above names its version and never changes: a new release goes up beside it, never over it. `/downloads/latest/` carries the same file names without the version and moves to each new release, which is for trying things; an app that ships pins a version.

`/downloads/dev/` carries a development build under the same file names: the working build between releases, replaced on every publish and never a release.

To check a tarball against the hash beside it: `shasum -a 256 <file>`, or `Get-FileHash <file> -Algorithm SHA256` in PowerShell.

Every package here needs Node 22 or later.

The same list as JSON: [manifest.json](https://docs.dev.bitskiff.com/downloads/manifest.json).

## Samples

Code to copy and run on your own infrastructure. Unpack it with `tar -xzf <file>` and read its README.

| Sample | What it is | Size | File | sha256 |
|---|---|---|---|---|
| Server host | A host that runs on your server, the host's display page it feeds, the pairing flow and a Kubernetes manifest. | 18.3 kB | `https://docs.dev.bitskiff.com/downloads/bitskiff-server-host-sample.tgz` | `d75f9e9dde437c9ff162f51dd4a95e5b71150940126e3c8f400bd749daba0fb1` |
| Stripe billing | An hourly job that sends each subject's host and client minutes to Stripe Billing Meters and checks that Stripe counted them. | 13.0 kB | `https://docs.dev.bitskiff.com/downloads/bitskiff-stripe-billing-sample.tgz` | `81f73979f68cb8ec688edb62ca4c42458e7f94d0eeb6c6d364a502003bfbe78f` |