Skip to content

Quick start

This page takes you from no account to a pushed repository on tangled.org. It takes a few minutes and needs only git and ssh.

git remote add origin git@tangled.org:alice.tngl.sh/my-project
git push -u origin main

Tangled accounts are AT Protocol accounts. If you already have one (a Bluesky account, for example), sign in at tangled.org/login with your handle, such as alice.bsky.social. Your browser is sent to your account provider to approve access; Tangled never sees your password.

If you don’t have an account, sign up. You enter an email address, choose a username and password. The result is an account with a handle like alice.tngl.sh, on the PDS we run. It works in any other atproto application too.

You can sign in to several accounts and switch between them from the account menu.

The first sign-in opens a short, optional setup. If you connect GitHub, Tangled can import your avatar, SSH keys and email addresses from it.

Add at least one verified email if you want email notifications or want your commits linked to your profile.

Pushing over SSH needs a public key published in your account. Generate one if you don’t have one:

ssh-keygen -t ed25519 -C "alice@example.com"
cat ~/.ssh/id_ed25519.pub

Paste the output into Settings → Keys → Add SSH key (/settings/keys/new) with a title such as “Work laptop”. The key is saved in your account.

If your SSH agent holds many keys, the knot may give up before it sees the right one. Pin the key in ~/.ssh/config:

Host tangled.org
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes

Use your knot’s hostname instead of tangled.org for repositories on a self-hosted knot.

Head to the New Repository page and fill in:

  1. Repository name: letters, digits, ., _ and -, up to 100 characters. A trailing .git is dropped, and self is reserved.
  2. Description: optional, up to 140 characters.
  3. Default branch: main unless you change it.
  4. Hosting: by default the repository is hosted with Tangled. If you self-host a knot, you can host it there instead; see Running a knot.
  5. CI: optional, under Advanced. Run it with Tangled, or on a spindle you self-host.

An empty repository page shows its remote. Push an existing project to it:

cd my-project
git remote add origin git@tangled.org:alice.tngl.sh/my-project
git push -u origin main

For repositories hosted by Tangled, the SSH host is tangled.org. On a self-hosted knot it is the knot’s own hostname, for example git@knot.example.com:alice.tngl.sh/my-project. Note that this depends on your self-hosted knot’s SSH setup.

To move a repository you already push elsewhere, point origin at Tangled and push every branch and tag:

git remote set-url origin git@tangled.org:alice.tngl.sh/my-project
git push origin --all
git push origin --tags

If you are coming from GitHub, check out the Migration guide, that walks you through a mass repository migration tool.