---
title: Handles
description: The @handle every account has — where it's used today, and where it used to appear in urls.
---

# Handles

Every sherlock account has a unique **`@handle`** — 3 to 20 characters,
lowercase letters, numbers, and underscores. It's shown next to your
email on the account page, with a **Change handle** dialog to pick a new
one at any time.

## Reserved names

A handful of names are reserved and can never be claimed, including
`admin`, `root`, `support`, `help`, `api`, `auth`, `shebang`, `dash`,
and each service's own name (`sherlock`, `sherpage`, `sherserve`,
`sherlink`, `sherbase`). Picking one of these returns "Already taken"
even though no account holds it.

The list is enforced server-side at three points, all kept in sync:
the pre-signup availability check, the sign-up trigger that assigns a
handle to a new account, and a database constraint on the `profiles`
table itself — so a reserved handle can't slip through even if the
first two are bypassed.

## Where a handle is used

Today, a handle's only real job is identifying your account — in the
delete-account confirmation dialog, for example, which asks you to type
it back before it will proceed.

## The old `@handle/slug` url form

Before public ids, a published page or uploaded file's address was built
from its owner's handle and the resource's slug —
`dash.shebang.pro/@yourhandle/some-slug`, in effect. That form is
superseded: every resource now gets a permanent, handle-independent
address instead. See
[public ids and urls](/concepts/public-ids-and-urls) for the current
shape, and for how an old `@handle/slug` link keeps working via a
redirect rather than breaking outright.

Because a handle can still be changed later, nothing that has to keep
working — a bookmark, a link shared once — should ever be built from it
again.

## Next

[sherpage](/sherpage).
