Reference
Commands and limits
The public CLI, MCP tools and exact limits in one place.
Holocron is the product and canonical executable. The private package is @amxv/holocron 0.2.0. Its production release is holocron-v0.2.0, asset holocron-0.2.0.tgz, in the private amxv/holocron repository. The independent helper is available as holocron cloud or holocron-cloud. Intentional compatibility aliases are board, shared-clipboard, shared-clipboard-probe and shared-clipboard-cloud.
Mac CLI
Run with Node 24.21.0 and Bun 1.4.0. For the primary private STDIO route, explicit local management uses --local-config with the strict private { "transport": "stdio", "stateDirectory": "/absolute/private/state" } JSON. The alternative OAuth HTTP route uses --config with its separate operator JSON. Do not mix identities/state or config flags. With a dedicated install, use the recorded absolute "$SC_NODE" "$SC_CLI" invocation.
For direct dist/cli.js invocation and historical shared-clipboard commands that open state, the working directory must not be the state directory or any ancestor of it. Use cd "$SC_INSTALL" with the installed package prefix separate from state, and set the same directory for tunnel/native supervision. The holocron wrapper anchors to installed code automatically. check-config validates configuration without opening state. See setup.
| Command | Purpose |
|---|---|
--version / --help |
Inspect version and usage without config |
check-config --local-config FILE |
Validate private STDIO config without network/clipboard calls |
stdio --local-config FILE |
Run MCP over stdin/stdout for the official tunnel client; no public listener |
start --config FILE |
Run the companion in the foreground |
status --local-config FILE |
Query local control socket and retained-share counts |
stop --local-config FILE |
Stop the local companion; leave clipboard/shares/receipts intact |
capture --local-config FILE [--name LABEL] |
Read the Mac clipboard once into a text snapshot |
share-text --local-config FILE [--name LABEL] |
Share literal UTF-8 stdin |
share-file PATH --local-config FILE [--name LABEL] |
Capture one selected regular UTF-8 file |
list --local-config FILE |
List up to 20 safe share metadata records |
revoke SHARE_ID --local-config FILE |
Remove the owner’s selected retained snapshot |
clear --local-config FILE |
Remove all retained shares for the owner |
prepare-plugin --connection-id ID --output DIRECTORY |
Create a new private plugin mapping outside the checkout |
login-install --config FILE |
Opt in to a generated next-login LaunchAgent |
login-status --config FILE |
Inspect the managed file’s next-login intent |
login-remove --config FILE |
Remove only the exact owned login file; does not stop a current job |
Labels are 1 to 80 ASCII letters/digits/spaces/dots/underscores/hyphens, start with a letter/digit and have no trailing space. Default file label is Context file; source paths/basenames are not disclosed automatically.
The local management commands also support the separate HTTP --config route. HTTP start, login-install, login-status and login-remove continue to use --config; they do not manage the STDIO tunnel lifecycle. See Secure MCP Tunnel and HTTP OAuth.
MCP tools
In the primary private STDIO route, authorized tunnel/workspace callers all act as one fixed local OS owner. There is no external OAuth or remote per-user isolation. Restrict access to the tunnel/connection.
For the separate HTTP route, every protected message requires the configured owner and status scope. The table lists additional HTTP OAuth scopes, defined by your provider.
| Tool | Additional HTTP scope | Behavior |
|---|---|---|
get_bridge_status |
None | Owner-bound status with opaque principal; no raw subject/token |
read_synthetic_probe |
Read | Return a fixed harmless synthetic marker |
list_shared_items |
Read | List the owner’s unexpired snapshots; follow nextCursor |
read_shared_item |
Read | Read by opaque ID and UTF-8 byte offset; follow nextOffset |
copy_text_to_mac |
Write | Copy literal text only on request; return a durable receipt |
Tools expose no remote Mac path selector, live Mac clipboard read, shell, URL fetch, file writing or native attachment capability. The dot can materialize exact pages using its own existing file tools after explicit authorization and full digest verification.
The pinned MCP SDK 1.32.0 uses the legacy initialize / notifications/initialized lifecycle and negotiates up to protocol 2025-11-25. Clients using the newer 2026-07-28 protocol must use its supported legacy fallback. A server/discover-only client cannot establish this connection; see tunnel mapping.
Limits
| Setting | Exact value |
|---|---|
| Text snapshot / Mac copy / cloud clipboard | 256 KiB = 262,144 UTF-8 bytes |
| Selected file snapshot | 10 MiB = 10,485,760 bytes |
| Aggregate snapshot content | 100 MiB = 104,857,600 bytes across owners sharing a state directory |
| Snapshot lifetime | 24 hours |
| Remote read page | 4 to 65,536 UTF-8 bytes; default/maximum 65,536 |
| Remote list | Default 20; maximum 100 items per page |
| Copy request ID | 16 to 128 ASCII letters/digits/underscores/hyphens |
| New copy deadline | Future canonical UTC with milliseconds; at most five minutes ahead |
| Copy digest | Optional original 64 lowercase hexadecimal SHA-256; required by the cloud helper |
| Receipt retention | Seven days beyond completion/recovery; maximum 50,000 rows |
| HTTP access token lifetime | At most one hour |
| Cloud stdin/read/write startup deadline | Two seconds |
| Cloud ownership maximum | 30 minutes = 1,800,000 ms |
| Default HTTP listener | Loopback port 4317, MCP path /mcp |
The read limit covers decoded UTF-8 bytes, with JSON/MCP overhead separate. Pages may end early to preserve Unicode boundaries. Do not use character indexes as offsets. Unsupported/binary/oversize data fails without truncation or normalization.
Friendly Holocron CLI
The one-command installer places the absolute pinned-Node wrapper at ~/.local/bin/holocron; custom bin/prefix paths are supported. Commands without --config use private STDIO config. An explicit --config selects the separate OAuth HTTP route and never adopts local STDIO authority.
| Command | Explicit action |
|---|---|
holocron link --local-config ABS_JSON |
Validate local config only and save its private path reference |
holocron init |
Create a new private config/link, refusing existing files; start nothing |
holocron copy [--name LABEL] |
Capture Mac clipboard text once into a snapshot |
holocron share [--name LABEL] |
Capture exact UTF-8 stdin to EOF |
holocron share-file PATH [--name LABEL] |
Snapshot the one selected UTF-8 file |
holocron list, holocron revoke ID, holocron clear |
List/revoke/clear retained snapshots; leave clipboards/receipts alone |
holocron status, holocron check-config |
Query local state/control or validate config only |
holocron stdio |
Protocol-only MCP subprocess; let the existing tunnel launch it |
holocron cloud probe, holocron cloud read, holocron cloud write --sha256 DIGEST [--file FILE] |
Delegate the independent Wayland helper |
holocron ask --pairing-file RECEIVER_JSON -m PURPOSE NAME [NAME...] |
Block for Mac approval and print only a private receiving-computer temporary directory path |
holocron secrets prepare, pair, complete |
Receiver-generated credentials, public descriptor exchange, explicit native Mac approval and fingerprint-verified encrypted enrollment |
holocron secrets build-prompt, serve, revoke, cleanup |
Build the Mac UI, serve approved requests, revoke one pairing or remove a returned temporary session |
For sharing/status/STDIO commands, config selection is --local-config ABS_JSON, then HOLOCRON_LOCAL_CONFIG, then legacy BOARD_LOCAL_CONFIG, then the saved link. Profile selection is HOLOCRON_CLI_HOME, then legacy BOARD_CLI_HOME, then ~/.config/holocron if present, otherwise an existing ~/.config/board, otherwise a new ~/.config/holocron. Existing profiles are used in place without copying secrets. Cloud and secret operations do not read ordinary profiles or Mac clipboard config. Relative selected data paths are resolved before anchoring to installed code; state beneath that code directory remains forbidden.
Secret setup/serve/revoke/cleanup outputs JSON containing paths, public metadata or acknowledgements. ask success outputs just its private directory path; failures output a fixed safe code to stderr with no values or paths. Values exist only in 0600 files under that 0700 directory. One to eight distinct uppercase names, 4,096 UTF-8 bytes per value, 500-character non-secret purpose, 15-minute enrollment, seven-day pairing, three-minute request and five-minute files. A dedicated encrypted relay and explicit pairing are required. No existing private transfer channel is needed, and no receiver private credentials leave that computer. See the receiving-agent handoff and operator prerequisites.
Shortcut contract: invoke an absolute executable with literal argv, e.g. holocron copy --name "Raycast clipboard" --local-config ABS_JSON. copy, share and share-file emit one JSON line with exactly id, name, kind, byteCount, sha256, createdAt, expiresAt. IDs are UUIDv4, digest is 64 lowercase hexadecimal SHA-256, times are canonical UTC with milliseconds, and expiry is 24 hours after capture. copy/share always return kind: "text"; share-file returns "file". Empty text/files are valid. Labels are 1–80 ASCII characters: first alphanumeric, subsequent alphanumeric, spaces, dot, underscore or hyphen, with no trailing space. Output contains metadata only, never snapshot contents, source paths or credentials.
Exit codes are 0 for success, 2 for invalid arguments and 1 for operational failure. Errors use stderr; do not expose captured stdout/stderr wholesale in a shortcut UI. holocron start --config and login commands use only the HTTP route; holocron stop uses the selected local route. There is no execution command. holocron copy reports a shared snapshot; remote clipboard delivery requires the original-digest receiving workflow.
Cloud CLI
The helper requires Linux Wayland, fixed /usr/bin/wl-copy and /usr/bin/wl-paste, and the intended session’s XDG_RUNTIME_DIR/WAYLAND_DISPLAY.
holocron-cloud --version
holocron-cloud --help
holocron-cloud probe
holocron-cloud write --sha256 ORIGINAL_DIGEST --file DATA_FILE
holocron-cloud read > cloud-read.json
probe reads no clipboard. write takes exact literal stdin or a selected regular data file, checks the original digest and holds foreground ownership after verified backend readback. read captures once and returns exact JSON text/byte count/digest; its framing newline is not content. Keep helper outputs private. See the full cloud transfer workflow.
Availability and data
Local available, helper candidate and backend owned events each describe one layer. None proves intended Dots or viewed-desktop compatibility. Actual live setup remains deferred and unverified until the private tunnel live checks pass. The HTTP OAuth route has separate provider/owner/scope checks.
Shares are immutable local plaintext. Expiry/revocation blocks future reads but cannot erase already returned copies. Stop/disconnect leaves the current clipboard alone. No offline delivery queue or automatic replay exists. See operation and removal.