A terminal client for Tangled.
- Go 97%
- Nix 3%
| atproto | ||
| cmd/tg | ||
| flake | ||
| internal | ||
| knot | ||
| nix | ||
| tangled | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| go.mod | ||
| go.sum | ||
| LICENSE.md | ||
| README.md | ||
| result | ||
tg
tg is a command-line client for Tangled, the git forge built on atproto. It is an analogue to the GitHub CLI (gh), (for now) built against the read-only Bobbin XRPC API.
Installation
With Nix
nix profile add github:alyraffauf/tg
From source
go install github.com/alyraffauf/tg/cmd/tg@latest
Usage
tg auto-detects the repository from the origin remote when run inside a cloned Tangled repo. For now, only ssh origins are supported. You can also pass a fully-qualified handle/repo argument.
Repositories
# List repositories for a user
tg repo list microcosm.blue
# Create a repository (requires `tg auth login`)
tg repo create my-tool --description "A small tool"
# Create and clone it into the current directory
tg repo create my-tool --clone
# Create and push an existing local repo (at the given path) to the new remote
tg repo create my-tool --push=.
# Clone a repository
tg repo clone microcosm.blue/microcosm-rs
# Clone into a custom directory
tg repo clone microcosm.blue/microcosm-rs my-fork
Issues
# List issues for the current repository
tg issue list
# List issues for an explicit repository
tg issue list microcosm.blue/microcosm-rs
Pull Requests
# List pull requests
tg pr list
# Check out a pull request as detached HEAD
tg pr checkout 3mporttfqez22
Architecture
cmd/tg/— CLI entry pointinternal/cli/— Cobra command tree (repo,issue,pr)internal/gitutil/— Git operations (clone, fetch, patch apply)tangled/— Typed client for the Bobbin API (api.tangled.org)atproto/— Identity resolution (handle ↔ DID, PDS discovery)
Dependencies
- Go 1.26+
gitandssh(for clone and PR checkout)github.com/bluesky-social/indigo— atproto SDKgithub.com/spf13/cobra— CLI framework
License
See LICENSE.