Cypher Page

Write a little. Share what matters.

The command-line application

The Cypher Page CLI is for people who are comfortable typing commands in a terminal. It lets you publish small pages, fetch pages someone has shared with you, and manage the copies and ownership information on your device.

The program is called cypherpage. The 0.3.0 release is being prepared; the application can currently be built from source. There isn't a ready-to-install package or graphical download advertised here.

Get the program

The CLI targets desktop Linux, macOS, and Windows. Building it requires Rust 1.89 or newer and a native build toolchain; Veilid may need additional development packages for your platform.

Get the source from the Cypher Page repository. From the checked-out project directory:

cargo build --release --locked

The program is then in target/release/ (cypherpage.exe on Windows). The examples below assume it is available as cypherpage in your terminal. See the build and installation reference for more detail.

Publish your first page

Prepare your local ownership storage and create a starter file:

cypherpage setup
cypherpage new page.md

Edit page.md in a text editor. A page is a Markdown file with a small YAML header, like this:

---
title: A little news
---
# Hello!

Here is what I've been working on.

Check it, then publish it:

cypherpage check page.md
cypherpage publish page.md

check works offline and leaves your file unchanged. It reports cleaning adjustments and the page's size against the 32,768-byte serialized limit. Publishing needs a connection to Veilid.

Publishing gives you a page address and a private owner key. Share only the page address. The owner key permits changes or emptying the page, so back it up privately. If you lose both that backup and your locally saved ownership information, control cannot be recovered.

Fetch a page and read it later

Replace <page-address> with the complete address someone shared with you:

cypherpage fetch '<page-address>'
cypherpage list --fetched
cypherpage read '<page-address>'

fetch shows a safe title preview and asks whether to save a copy. It doesn't print the body. Answer yes to clean and save the page; read displays that saved copy without fetching it again. Declining leaves any previous copy unchanged.

Refresh all your saved fetched copies with one explicit confirmation:

cypherpage fetch --all

Some entries can fail while others are saved. The final summary tells you how many succeeded and failed; a batch is not an all-or-nothing update.

Update or empty a page you own

cypherpage list
cypherpage update '<page-address>' page.md
cypherpage clear '<page-address>'

list shows locally saved ownership, separately from fetched copies. Updating keeps the page's address. clear empties the published page but preserves your ability to write there again; it cannot erase copies readers already saved.

Version 0.3.0 uses verb-first commands. Use update <address> <file>, not the old <key> publish <file> form. publish creates a new page only.

Protect your ownership information

Backups don't include fetched copies or your source Markdown. Keep source files separately, use a strong backup passphrase, and protect both backups and exported keys. Restore failures can leave partial imports; there is no automatic rollback. Read the ownership and backup guide before using these commands.

Connections, privacy, and help

cypherpage status checks this invocation's node connection, not permanent availability or whether a particular page is reachable. --timeout <SECONDS> controls attachment and write-flush waits; it is not a whole-command deadline. Progress goes to stderr.

Publishing and fetching use Veilid. Saved-copy reading doesn't fetch the page again, though commands that initialize local node services can still cause background transport activity. Cypher Page doesn't load web links or outside resources from page content. Anyone with a complete page address can read and save that page.

Secure local storage uses the system keychain. --allow-insecure-fallback permits less-secure file storage; make that decision deliberately. A failed or timed-out write isn't proof that nothing changed, so don't blindly repeat publication.

Use cypherpage --help or cypherpage <command> --help for command help. The CLI also generates shell completions and a man page. For the full command reference, storage details, and troubleshooting, see the technical documentation.

Prefer a graphical interface? Visit the App page for its current status.