OXYGENHUB

Getting Started

Andy McCall edited this page · 1 revision

Getting Started

This page takes you from nothing to a signed change pushed to a hub. Each step is one or two commands.

flowchart TD
    A[Install oxy] --> B[Create your identity<br/><code>oxy identity create</code>]
    B --> C{New project<br/>or existing?}
    C -->|New| D[<code>oxy init</code>]
    C -->|On a hub| E[<code>oxy auth login</code><br/><code>oxy clone</code>]
    C -->|From Git| F[<code>oxy git import</code>]
    D --> G[Edit files]
    E --> G
    F --> G
    G --> H[<code>oxy status</code> and <code>oxy diff</code>]
    H --> I[<code>oxy commit -m ...</code>]
    I --> J[<code>oxy push</code>]

1. Install

Builds for Linux, macOS and Windows are on the releases page. On Debian or Ubuntu, add the apt repository so apt upgrade keeps oxy current:

sudo curl -fsSLo /usr/share/keyrings/oxygenhub-archive-keyring.gpg https://oxygenhub.io/apt/oxygenhub.gpg
sudo tee /etc/apt/sources.list.d/oxygenhub.sources >/dev/null <<EOT
Types: deb
URIs: https://oxygenhub.io/apt
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/oxygenhub-archive-keyring.gpg
EOT
sudo apt update && sudo apt install oxy

The repository has builds for x86_64, arm64 and riscv64. To build from source instead, run cargo build --release in a checkout; the binary is target/release/oxy.

2. Create your identity

oxy identity create --name "Ada Lovelace" --email [email protected]
oxy config --user core.sign change      # sign every commit as you make it

This makes a composite key pair (Ed25519 and ML-DSA-65), keeps the secret part in ~/.config/oxy/keys/, and records you as the default author. See Identity and Signing for what the keys do.

3. Start or fetch a repository

mkdir project && cd project && oxy init          # a new repository
oxy auth login https://oxygenhub.io              # or: sign in to a hub once, in the browser
oxy clone https://oxygenhub.io/owner/project     # and clone from it
oxy git import ~/src/old-project project         # or: bring a Git history across

oxy init creates a .oxy/ directory. Add a .oxyignore file (the same syntax as .gitignore) for files that should never be tracked. A project's existing .gitignore files are honoured too.

4. Work, commit, push

oxy status                    # what changed
oxy diff                      # the edits, file by file
oxy commit -m "Add retry loop"
oxy log                       # history, newest first
oxy push                      # publish to origin
oxy pull                      # take in what others pushed

There is no staging area: the working copy is itself a change that oxy keeps up to date. To commit only some files, name them: oxy commit src/net.rs -m "...", or pick hunks with oxy commit -i.

Made a mistake? oxy undo takes back the last command, whatever it was. See Working Copy and Operation Log.

Next

  • Everyday Work for the commands you will use daily.
  • Bookmarks for working on more than one line of work.
  • Concepts to understand why it works the way it does.