tng -- Tangled CLI
Work with Tangled, the decentralized Git collaboration platform, from your terminal.
tng auth login --handle alice.bsky.social
-tng repo clone alice.bsky.social/my-project
+ tng auth login --handle example.bsky.social
+tng repo clone example.bsky.social/my-project
cd my-project
tng pr list
tng issue create --title "Bug report"
@@ -327,7 +327,10 @@ make build
tng authenticates using AT Protocol OAuth 2.0 with PKCE and DPoP. This is the same protocol used by Bluesky. Your handle can be from any AT Protocol provider.
# Opens browser for authorization
-tng auth login --handle alice.bsky.social
+tng auth login --handle example.bsky.social
+
+# Paste the localhost callback URL in a headless environment
+tng auth login --manual --handle example.bsky.social
# Check current session
tng auth status
@@ -339,11 +342,12 @@ tng auth logout
- Resolves your handle to a DID and PDS endpoint
- Sends a Pushed Authorization Request (PAR) with PKCE challenge
- - Opens your browser to authorize the CLI
- - Handles the OAuth callback on a local HTTP server
+ - Opens your browser, or displays an authorization URL in a remote session
+ - Handles the OAuth callback on a local HTTP server or from a pasted callback URL
- Exchanges the code for DPoP-bound access tokens
- Stores the session locally at
~/.config/tng/
+ Over SSH, manual browser authentication is selected automatically. Open the displayed URL on your local machine, authorize the CLI, then copy the full localhost callback URL from the browser's address bar back into the terminal. Use --manual to select this flow in other headless environments.
Tokens are automatically refreshed. The public client flow gives sessions a lifetime of approximately two weeks.
@@ -353,11 +357,13 @@ tng auth logout
tng auth login
Authenticate via browser-based OAuth flow.
tng auth login
-tng auth login --handle alice.bsky.social
+tng auth login --handle example.bsky.social
+tng auth login --manual --handle example.bsky.social
tng auth login --handle did:plc:abc123| Flag | Description |
|---|---|
| --handle | AT Protocol handle or DID. If omitted, prompted interactively. |
| --manual | Complete login by pasting the localhost callback URL. Automatically enabled over SSH. |
tng auth status
@@ -390,8 +396,8 @@ tng repo create my-project --default-branch main --clone --knot knot1.tangled.shtng repo clone <owner/repo> [directory]
Clone a Tangled repository via SSH.
-tng repo clone alice.bsky.social/my-project
-tng repo clone alice.bsky.social/my-project ./my-dirtng repo clone example.bsky.social/my-project
+tng repo clone example.bsky.social/my-project ./my-dirtng repo view [owner/repo]
Display repository details: file tree, last commit, and README. Uses the current repo if no argument is given.
@@ -425,7 +431,7 @@ tng pr create -t "Fix bug" --base main --head fix-branchtng pr list
tng pr list
-tng pr list --repo alice.bsky.social/my-project
+tng pr list --repo example.bsky.social/my-project
tng pr list --web| Flag | Description |
|---|
| Flag | Description |
|---|
| Flag | Description |
|---|---|
| -R, --repo | Repository override |