Skip to main content

Bytes CLI

The Bytes CLI lets you create, manage and organise workspace links from your terminal.

It uses the same public /api/v1 Developer API as the REST examples in these docs. It does not call browser session routes, admin APIs or private dashboard endpoints.

Current Beta scope

The CLI currently supports links, workspace tags and attaching tags to links. QR, Offline Engagement and analytics commands are not part of the public CLI yet.

Install

Install the CLI from npm:

npm install -g @jawwws/bytes-cli

Check it is available:

bytes --version
bytes --help

Create an API key

API keys are managed inside your Bytes workspace.

Open the app, choose the workspace you want the CLI to use, then go to:

Workspace Settings > Developer API

Create a key, copy it immediately and store it securely. Bytes only shows the full key once.

Configure authentication

For scripts and CI, use an environment variable:

export BYTES_API_KEY="YOUR_BYTES_API_KEY"

For a local machine you control, you can store the key in the Bytes CLI config:

bytes config set-api-key YOUR_BYTES_API_KEY

View your local configuration without revealing the key:

bytes config show

API base URL

The production API base URL is used by default:

https://api.jaww.ws/api/v1

For local testing, override it with an environment variable:

BYTES_API_BASE_URL=http://localhost:8000/api/v1 bytes links list
bytes links create https://example.com/cops-and-coffee/coffee-tasting \
--slug cops-coffee-tasting \
--title "Cops and Coffee tasting event" \
--channel print \
--utm-source poster \
--utm-medium qr \
--utm-campaign coffee-tasting \
--utm-content poster-v1

The response includes the opaque public link ID. Use that ID for future CLI and Developer API commands. It is not the internal database ID.

bytes links list --per-page 10
bytes links list --q coffee

Use JSON output in scripts:

bytes links list --json
bytes links get lnk_copscoffee01k0m4zn8x7p9q2r3s4t
bytes links update lnk_copscoffee01k0m4zn8x7p9q2r3s4t \
--destination-url https://example.com/cops-and-coffee/new-page \
--title "Updated Cops and Coffee tasting page" \
--utm-content poster-v2

Mark a link inactive:

bytes links update lnk_copscoffee01k0m4zn8x7p9q2r3s4t --inactive

Archive a link:

bytes links archive lnk_copscoffee01k0m4zn8x7p9q2r3s4t --yes

Tags

List tags:

bytes tags list

Create a tag:

bytes tags create "Coffee tasting" --slug coffee-tasting --colour "#2563eb"

Update a tag:

bytes tags update 2 --description "Links for coffee tasting events"

Delete a tag:

bytes tags delete 2 --yes
bytes links tags attach lnk_copscoffee01k0m4zn8x7p9q2r3s4t --tag-ids 2,3

Remove a tag:

bytes links tags detach lnk_copscoffee01k0m4zn8x7p9q2r3s4t 2

Security notes

Do not commit API keys to source control.

Do not paste API keys into tickets, chat, documents or screenshots.

Do not use API keys in frontend or browser code.

Create separate keys for separate systems where possible, then revoke keys that are no longer needed.

Package and source

The npm package is:

@jawwws/bytes-cli

The CLI source repository is:

https://github.com/jawwws/bytes-cli