Skip to content
This repository was archived by the owner on Oct 20, 2026. It is now read-only.
cowboyincPublic archive

About

Retired. lasso now ships with the cowboy CLI (brew install cowboyinc/tap/cowboy; run lasso or cowboy console). Source: cowboyinc/core, lasso/.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Lasso

                                                  _  _
                                                 | || | _
                                                -| || || |
  ####   ###  ##   ## #####   ###  ##  ##        | || || |-
 ##  ## ## ## ##   ## ##  ## ## ## ##  ##         \ \_ || |
 ##     ## ## ## # ## #####  ## ##  ####            |  _/
 ##  ## ## ## ## # ## ##  ## ## ##   ##            -| | \
  ####   ###   ## ##  #####   ###   ##              |_|-

An interactive terminal console for the Cowboy blockchain. Lasso wraps the cowboy CLI into a persistent session with project detection, command history, and local state tracking.

Install

brew install cowboyinc/tap/lasso

(The fully-qualified name matters — plain lasso is an unrelated SAML library in homebrew-core.)

Or run from source:

npm install
npm run dev

Getting Started

Lasso connects to mesa, the public Cowboy devnet, by default — no setup required. New to Cowboy? Run /walkthrough for a guided tour of how the system works.

On launch, Lasso checks the current directory for a .cowboy/ project. If none is found, run /init to create one:

/init           # mesa, the public devnet (default)
/init local     # a node you run yourself

This initializes the project, generates a wallet, requests faucet funds for it, and scaffolds a starter actor. Wallets with a zero balance are automatically topped up from the faucet at launch; /faucet requests more any time.

Commands

General

Command Description
init [mesa|local] Initialize project environment (default: mesa)
walkthrough [n] Guided tour of how Cowboy works
docs [topic] Browse bundled Cowboy reference docs
faucet [address] Request devnet CBY (defaults to your wallet)
help Show all available commands
clear Clear the console
exit Quit lasso

Actor

Command Description
actor deploy <file.py> Deploy an actor to the chain
actor execute --actor <a> --handler <h> [--payload <json>] Execute an actor handler
actor get --address <a> Get actor details
actor address --code <f> --creator <c> --salt <s> Compute actor address
actor new <name> Scaffold a new actor project
actor list List deployed actors
actor logs --address <a> View actor logs

Runner

Command Description
runner get --address <a> Get runner details
runner list List all runners
runner register --stake <amount> Register as a runner

How It Works

Lasso runs as a persistent terminal session built with Ink. Commands are parsed locally and dispatched to the cowboy CLI as subprocesses or sent straight to the validator RPC. Some commands have additional behavior:

  • init extracts the wallet address from the CLI output and tracks it in .cowboy/config.json
  • actor deploy extracts the actor address and tracks it locally
  • actor list is a lasso-only command that lists all actors you've deployed from this console
  • faucet and the launch-time auto-fund call the validator's POST /faucet endpoint directly
  • plain text starts the Cowboy harness through Cattle Guard, with wallet-proven admission and resumable event streaming
  • local harness tools stay inside the project sandbox; reads exclude protected paths, while writes, commands, deploys, and signatures use Lasso's approval policy
  • Dashboard stores the conversation and native run reference when available, but it is no longer the harness transport

The status bar at the bottom shows the current network, project status, and wallet address.

Keyboard Shortcuts

Lasso now uses a shared line editor for the command prompt and masked inputs.

  • Ctrl+A / Ctrl+E move to the start or end of the line
  • Ctrl+B / Ctrl+F or left/right arrows move one character
  • Alt+B / Alt+F move by word when your terminal sends Meta/Option sequences
  • Ctrl+H or Backspace deletes backward
  • Ctrl+D or Delete deletes forward
  • Ctrl+U clears from the cursor back to the start of the line
  • Ctrl+K clears from the cursor to the end of the line
  • Ctrl+W deletes the previous word
  • Up/down arrows navigate command history in the main prompt
  • Ctrl+C clears the line first; pressing it again on an empty prompt exits Lasso

macOS caveats:

  • Option shortcuts depend on your terminal being configured to send Meta/Escape sequences. Terminal.app and iTerm2 may need an explicit Option-as-Meta setting for Alt+B / Alt+F to work.
  • Command shortcuts are best-effort only. Most terminals keep Command+Arrow and similar combinations for local UI actions, so Lasso may never receive those key events.

Configuration

Config is stored at .cowboy/config.json in the project directory (written by cowboy init, shared with the CLI). Per environment:

  • rpc_url - the target validator endpoint (default: https://rpc.mesa.cowboylabs.net)
  • key_file - wallet key location under .cowboy/keys/
  • cattle_guard_url - Cattle Guard origin for harness runs; Canyon automatically selects https://cattle-guard.canyon.cowboylabs.net
  • dashboard_url - dashboard API origin for conversation history, native-run registration, files, and live actor lists; known networks automatically select their matching dashboard
  • runner_url - optional OpenAI-compatible runner endpoint used only as the legacy direct fallback when Cattle Guard is not configured
  • actors - deployed actor addresses and labels

AI builder backends

On Canyon, plain-text prompts go directly to Cattle Guard at https://cattle-guard.canyon.cowboylabs.net. Lasso negotiates the protocol, proves control of the project wallet, streams durable harness events, and services the canonical local_list, local_read, and local_write tools. Dashboard receives a wallet-proven conversation and run reference so the same work remains visible there; it does not proxy the harness stream.

Each turn carries the wallet's CIP-9 workspace delegation, so the harness mounts the wallet's workspace CBFS volume and the agent's files persist there. Lasso fetches the bundle from the dashboard through a one-time signed challenge and holds it in memory for the session only. A wallet without a delegation is asked once to enable it; the mint signs two delegation hashes with the project key. /sync uses the same workspace volume by default.

Transaction requests are fetched from Cattle Guard's protected request API. Lasso shows an approval and uses cowboy transaction sign-hash --expect-tx-hex to decode the exact unsigned transaction, recompute its hash, and confirm the active wallet is a signer before returning a signature. This path requires Cowboy CLI 0.0.34 or newer.

Cattle Guard endpoints are intentionally restricted to the Canyon production origin or a loopback development origin because the requests carry replayable wallet access proofs. Unknown RPC environments do not inherit a Canyon or Mesa backend automatically.

Google-backed Dashboard wallets require an explicit end-to-end encrypted browser pairing flow; the backend cannot download those keys because it never possesses the Drive token or decrypted wallet. The proposed /login contract is documented in docs/GOOGLE_WALLET_PAIRING.md.

To use a direct vLLM runner instead, omit cattle_guard_url and point runner_url at your runner.

License

Business Source License 1.1 — see LICENSE.

Files authorization compatibility

Files sync and workspace delegation use the Dashboard request authorization protocol. Lasso constructs the statement from its configured Dashboard origin, wallet, method, target and request body, with a fresh challenge and an operation ID. A bounded transport retry obtains fresh authorization for the same operation. If an operation cannot be confirmed, check the remote result before starting it again.

Roll out this lasso version together with the matching Dashboard frontend/backend and macOS versions. Deploy the Dashboard operation-store migration before the coordinated cutover. Existing lasso and macOS installations must upgrade at that cutover; mixed client/server protocol versions are unsupported.

About

Retired. lasso now ships with the cowboy CLI (brew install cowboyinc/tap/cowboy; run lasso or cowboy console). Source: cowboyinc/core, lasso/.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages