Skip to content
@theia-hq

Theia HQ

Reach a machine by its public key. Grant one person one service. No account, no server you rent.

You are your key.

No account for you or the people you share with. Give someone a link to one service on your machine, for as long as you choose, and revoke it without touching anyone else.

Theia is swoosh, the command-line program that does this, and the Rust libraries it is built from. swoosh reaches your machines by their public keys, wherever they are, across home routers and NATs.

A machine serves what you name: a shell, a folder that takes files, a local port, or a website it fetches for you. Your own machines get in. Anyone else needs a link from you, unless you open the service to everyone.

curl -fsSL https://raw.githubusercontent.com/theia-hq/swoosh/main/scripts/install.sh | sh

Prebuilt for x86_64 and aarch64 Linux and Apple Silicon macOS. The script checks the download's SHA-256 checksum before it installs. The binaries are also on the releases page.

Experimental: the commands, the wire protocol and the key formats change between releases. Not for production use yet.

Docs: Getting started · Share one service · Keys · All docs

One program, built from libraries that each do one job

Each library below has its own repository and works without swoosh.

  • bifrost: Opens a byte-stream to a machine identified by its public key, wherever it is on the internet, across NATs, without knowing its address. In swoosh, it makes every connection between machines, over iroh by default.
  • nauthy: Capability tokens you can revoke with no server, rooted at one ed25519 key you hold. In swoosh, it decides who gets in.
  • tightbeam: A node addressed by its public key serves named services behind one gate. In swoosh, it serves each service you name.
  • services: Four services you can embed: fetch, measure, sshh and transfer. In swoosh, they are the website fetch, ping and speed, the shell, and the folder that takes files.
  • keystore: Stores one ed25519 secret key in one file, plain or encrypted. In swoosh, it keeps each key on disk.
  • quirk: A QUIC-style transport over UDP, written from scratch to learn how one works. In swoosh, it is a transport you can choose instead of iroh.

MIT OR Apache-2.0.

Popular repositories Loading

  1. swoosh swoosh Public

    Reach a machine by its public key and grant one person one service: ssh, files, ports, fetch. No account.

    Rust 3 1

  2. tightbeam tightbeam Public

    Named services behind one gate, reached by public key: a router, a connector, and a wire that refuses before a byte flows

    Rust 1

  3. nauthy nauthy Public

    Capability tokens rooted at one ed25519 key: mint, narrow, verify offline, revoke. No server, no PKI.

    Rust 1

  4. bifrost bifrost Public

    Reach a peer by its ed25519 key over a swappable transport: iroh today, a from-scratch UDP transport beside it

    Rust

  5. quirk quirk Public

    A QUIC-shaped transport written from scratch over UDP, to learn the layer. Not QUIC, not for production.

    Rust

  6. iris iris Public archive

    Verified file and directory transfer to a public key, over any transport

    Rust

Repositories

Showing 10 of 14 repositories

Top languages

Loading…

Most used topics

Loading…