Something went wrong. Try again.
Rust CLI for tangled
Something went wrong. Try again.
Rust 90%
9%
Nix <1%
Shell <1%
README.md
Tangled CLI #
Warning
Both tangled and this cli are in an experimental phase. Use at your own discretion.
A CLI for Tangled, a decentralized git collaboration platform built on the AT Protocol.
This cli is meant for both humans & agents.
Installation #
crates.io #
cargo install tangled-cli
Nix #
With Nix flakes enabled, run it directly from Tangled without cloning:
nix run 'git+https://tangled.org/dzejkop.space/tangled-cli#default' -- --help
To open a shell with tang available:
nix shell 'git+https://tangled.org/dzejkop.space/tangled-cli#default'
Build from Source #
git clone https://tangled.org/dzejkop.space/tangled-cli
cd tangled-cli
cargo install --locked --path .
Getting started #
-
Login to Tangled:
tang auth login -
List your repositories:
tang repo list -
Create a new repository:
tang repo create myproject --description "My cool project" -
Clone a repository:
tang repo clone username/reponame
Workspace Structure #
crates/tangled-cli- CLI binary with clap-based argument parsingcrates/tangled-config- Configuration and session management (keyring-backed)crates/tangled-api- XRPC client wrapper for AT Protocol and Tangled APIs
Configuration #
The CLI stores session credentials securely in your system keyring and configuration in:
- Linux:
~/.config/tangled/config.toml - macOS:
~/Library/Application Support/tangled/config.toml - Windows:
%APPDATA%\tangled\config.toml
Environment Variables #
TANGLED_PDS_BASE- Override the PDS base URL (default:https://bsky.social)TANGLED_API_BASE- Override the Tangled API base URL (default:https://api.tangled.org)TANGLED_DEFAULT_KNOT- Override the default knot for new repos (default:knot1.tangled.sh)TANGLED_SPINDLE_BASE- Override the Spindle base URL (default:wss://spindle.tangled.sh)
Examples #
Working with Issues #
# Create an issue
tang issue create --repo myrepo --title "Bug: Fix login" --body "Description here"
# List issues
tang issue list --repo myrepo
# Comment on an issue
tang issue comment <issue-id> --body "I'll fix this"
Working with Pulls #
# Create a pull from the current git repository and branch
tang pull create
# Or create a pull explicitly
tang pull create --repo myrepo --base main --head feature-branch --title "Add new feature"
# Review a pull
tang pull review <pull-id> --approve --comment "LGTM!"
# Merge a pull
tang pull merge <pull-id>
Contributing #
Contributions are welcome! Please feel free to submit issues or pulls.
License #
MIT OR Apache-2.0