# Atlas TUI error: Unrecognized keybind in config

> Remove or fix the keybind names listed in the message, checking spelling against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts.

The Atlas TUI refuses to start with Unrecognized keybind: <name> because Keybind.parse compares your override keys against the known Definitions map and throws listing every key it does not recognize, rather than silently dropping them. The fix is to remove or fix the keybind names listed in the message and check their spelling against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts. Keybind names are the action names, not the key strokes, and the value is the stroke.

## Symptom

The Atlas TUI refuses to start with: Unrecognized keybind: <name>. When more than one override key is unknown, the message lists them all: Unrecognized keybinds: <name>, <name>.

## Cause

Keybind.parse compares your override keys against the known Definitions map and throws listing every key it does not recognize, rather than silently dropping them. An override whose key is not an action name in that map therefore stops the Atlas TUI from starting.

## Fix

1. Remove or fix the keybind names listed in the message.
2. Check the spelling against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts.
3. Confirm you used action names as keys, because keybind names are the action names, not the key strokes, and the value is the stroke.
4. Restart the TUI once the config parses.
5. Confirm the TUI starts with no Unrecognized keybind message.

## Why does the Atlas TUI say Unrecognized keybind?

The Atlas TUI refuses to start with Unrecognized keybind: <name> because Keybind.parse compares your override keys against the known Definitions map and throws listing every key it does not recognize. Even 1 override key that is not an action name in that map stops the TUI from starting.

Keybind overrides in Atlas are a map from action name to key stroke. Keybind.parse validates the left-hand side of every entry against Definitions, the map of action names Atlas actually knows. A key that is not in Definitions is not a keybind Atlas can honor, so Keybind.parse throws and names it. When several overrides are unknown, the message becomes Unrecognized keybinds: <name>, <name>, listing each one, so a single restart tells you about all of them rather than one per attempt.

## Are Atlas keybind names the action or the key stroke?

Atlas keybind names are the action names, not the key strokes. Each override has 2 sides: the left side is the action name that Keybind.parse looks up in the Definitions map, and the right side is the stroke. Writing a stroke on the left triggers Unrecognized keybind: <name>.

The direction trips people up because both halves of the entry look like short technical strings. In an Atlas keybind override, the key is the action you want to rebind, and the value is the stroke you want to bind it to. Entries written the other way round, with the stroke as the key, fail immediately, because a stroke is never an entry in the Definitions map. If the name Atlas printed looks like a chord rather than a verb, the entry is inverted and swapping the two halves is the fix.

## How to fix an unrecognized keybind in Atlas config

Fix an unrecognized keybind in Atlas in 2 steps: remove or correct the keybind names listed in the message, then check the spelling against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts. Keybind.parse recognizes only the action names in that map, so the spelling has to match exactly.

Read the message first, because Keybind.parse lists every key it does not recognize in one throw, which means the full set of names to fix is already in front of you. For each one, decide whether it was a typo for a real action, in which case correct it against the Definitions map, or whether the action does not exist at all, in which case remove the override. Atlas-Frontend/tui/src/config/keybind.ts is the authoritative list, so check names there rather than guessing at plausible action names.

## Why does Atlas refuse to start instead of ignoring a bad keybind?

Atlas refuses to start on 1 unrecognized keybind because Keybind.parse throws listing every key it does not recognize, rather than silently dropping them. A dropped keybind would mean a rebinding you configured quietly does nothing, and you would only discover it by pressing the key and getting no response.

The strict behavior is a deliberate trade. Silently ignoring an unknown override would let the Atlas TUI start, at the cost of a keybind that is configured and does nothing, which is a genuinely annoying thing to debug from the keyboard. Throwing at parse time turns that into a message with a name in it. Atlas is a terminal-native TUI rendered with SolidJS through the OpenTUI renderer, and the keyboard is the primary interface, so keybinds that silently fail to bind would undercut the whole surface.

## How to verify the keybind fix worked in Atlas

Verify the Atlas keybind fix by restarting the TUI once the config parses, which is step 4 of the documented fix. A start with no Unrecognized keybind: <name> message means Keybind.parse matched every override key against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts.

Restarting the Atlas TUI is the verification, since Keybind.parse runs at startup. Beyond a clean start, press the strokes you bound and confirm the actions fire, because a keybind can be recognized as a valid action name and still be bound to a stroke you did not intend. If Unrecognized keybinds returns with a shorter list than before, some of the names were fixed and the remaining ones still do not exist in Definitions, so check those against keybind.ts specifically.

## FAQ

### How do I fix Unrecognized keybind in the Atlas TUI?

Remove or fix the keybind names listed in the message, and check the spelling against the Definitions map in Atlas-Frontend/tui/src/config/keybind.ts. Restart the TUI once the config parses.

### What is the Definitions map in Atlas keybind.ts?

Definitions is the map of known keybind action names that Keybind.parse compares your override keys against. It lives in Atlas-Frontend/tui/src/config/keybind.ts, and a key that is not in it produces Unrecognized keybind: <name>.

### Should the Atlas keybind name be the key I press?

No. Keybind names are the action names, not the key strokes, and the value is the stroke. Putting the stroke on the key side is the most common cause of Unrecognized keybind, because Keybind.parse looks that side up among action names.

### Why does Atlas refuse to start over a keybind typo?

Keybind.parse throws listing every key it does not recognize, rather than silently dropping them. Silently dropping an override would leave you with a keybind that is configured but does nothing, which is harder to diagnose than a startup message.

### Atlas listed several unrecognized keybinds. Do I fix them one at a time?

No need. Keybind.parse throws listing every key it does not recognize, so Unrecognized keybinds: <name>, <name> gives you the full set at once. Fix or remove all of them, then restart the TUI.

### How do I confirm my Atlas keybinds are working again?

Restart the TUI once the config parses and confirm no Unrecognized keybind message appears. Then press the strokes you bound, since a valid action name can still be bound to a stroke you did not intend.

---

Canonical HTML: https://runatlas.sh/resources/troubleshooting/unrecognized-keybind
Source of truth: aeo_pages row `/resources/troubleshooting/unrecognized-keybind` (segment: Troubleshooting) (this file is generated from it, never hand-edited).
Licence: Atlas is proprietary with a free core. It is not open source and there is no public source repository.
