betty.land

btty

Command-line access to the BeTTY ecosystem.

Introduction

btty is the command-line interface and orchestration layer for the BeTTY ecosystem: a lightweight, extensible control plane that bridges human intent, system configuration, and federation. Whether you're running a local bettyd node, deploying httbd as a web gateway, or managing data flows between BeTTY-compatible services, bettyd gives you a single, expressive tool to manage everything from the terminal or your automation scripts.

It communicates directly with bettyd nodes and the httbd gateway, handling encryption, transclusion, pagination, search, and messaging from a single unified interface.

With btty, you can build, query, and synchronize BettyDocs from anywhere — locally, offline, or across federated servers.

Purpose

The btty command-line interface is designed for speed, clarity, and transparency. It offers developers and researchers a universal tool for accessing and manipulating structured knowledge without leaving the terminal.

Every btty operation maps to a LUMA verb or a combination thereof. List, Upsert, Message, and Append the four fundamental actions of the BeTTY RESTful API. Linking your code into these LUMA verbs allows you to do anything with BeTTY!

Functionality

Process manager

btty provides the administrative and operational controls for your bettyd and httbd processes. You can start, stop, monitor, and configure your nodes—locally or across a federated network—with a unified command syntax designed for clarity and composability.

Manage Identities and Trust

Every BeTTY node is built on a public-key infrastructure (PKI). btty is your interface to that trust layer, enabling the creation, management, and revocation of identities, keys, and group permissions.

Plugin Management and Extensibility

BeTTY's power comes from its plugin ecosystem. With btty, developers can create, install, and manage plugins written in the language of their choice, extending both bettyd and httbd with new capabilities.

Data Governance and Index Control

btty gives users control over their data's life cycle, from tagging and indexing to archival and purge schedules. Through a simple command structure, you can set data retention policies, manage semantic tags, and tune how your node indexes and serves information.

How It Works

btty wraps the full BeTTY protocol into an ergonomic command structure. It can directly manage bettyd nodes, run distributed computations, and orchestrate data exchange between federated peers.

# Example: querying the BeTTY network with your default settings
btty list --tag "research" --limit 5

# Example: appending a JSON message directly to a locally aliased topic
btty append "@todolist" --json '{"tasks":[{"headline":"Pick up milk from the store.", "dueDate":"@10pm"}]}'

# Example: converting markdown via marXDown
btty upsert notes.md --convert marxdown --output notes.bet
        

btty handles all encryption, federation, and local caching automatically. When offline, it operates seamlessly in local-first mode, syncing updates once a connection resumes.

Why It Matters

btty turns the BeTTY ecosystem into a programmable environment for information. It's a semantic command line that unites developers, researchers, and machines through a shared protocol. For power users, it's a modern Gopher client, a JSON-based shell, and a version-control interface all in one.

Integration

btty sits between the BeTTY core (bettyd) and its application layer (httbd and marXDown). It acts as the orchestration layer of the ecosystem, ideal for scripting, testing, and automation.

Whether you're building plugins for httbd, importing local data for marXDown, or powering distributed applications like memeograph, btty is the backbone of BeTTY's federation model.