Luxe

Troubleshooting

Common problems, where Luxe logs, and what to include in a bug report.

View as Markdown

Start with luxe doctor

luxe doctor

It lists the tools, language servers and debug adapters Luxe found, starts each language server to check that it works, and shows how to install or fix what does not.

Common problems

ProblemFix
No model selected, or --headless refuses to startChoose one with /model, or pass --model provider/id. Luxe never picks one for you.
The model picker is emptyNo provider is set up. Open Configuration (c), or set a provider’s key in the environment.
A provider keeps failing with retrying (3/3)It is overloaded or unreachable. See When a provider stalls for the time limits.
A setting does nothingLuxe ignores keys it does not know, so check the spelling. luxe init and /settings write a config.schema.json your editor can check against. A project’s file cannot change some settings; see Configuration.
Icons show as boxes, or sit flush against their wordsSee Fonts, and the glyphs setting in Appearance.
Your terminal’s copy key does nothingThe terminal keeps it. Hold shift while dragging, or let the key pass through; see Mouse and clipboard.
Images do not appearYour terminal may not draw them. /images says why; see Images.
A language server is not usedluxe doctor says whether it starts. A server a project installed is used only when you are watching; see Tools.
A project’s hooks or MCP servers do not runThey need --trust-project, or an interactive session for MCP servers. See Security.
Luxe opened the wrong folder as the projectInside a repository, a .luxe/ between you and its top scopes the project there. Remove it, or start Luxe somewhere else. See Where the project begins.
/pr or /github says GitHub is unavailableInstall the GitHub CLI and sign in: gh auth login. A private repository also needs gh auth setup-git.
A key binding does not workYour terminal may not send that key. Rebind it; see Commands and keys.
On a Mac, some alt keys type a character such as ø or πYour terminal treats Option as a key that types characters. Set it to act as Alt; see Alt keys on a Mac.

Logs

A session logs to .luxe/logs/luxe.log in the project. Commands that only report, such as luxe auth, luxe doctor and luxe models, log to logs/luxe.log in the state directory: ~/.local/state/luxe/ (%LOCALAPPDATA%\luxe\ on Windows), or wherever LUXE_STATE_DIR or XDG_STATE_HOME puts it. On macOS and Linux, a log is readable only by you. One past 5 MB is moved to luxe.log.1 the next time Luxe starts, replacing the one before.

The log shows Luxe’s own activity at info and everything else at warn. For more:

LUXE_LOG=debug luxe                        # everything
LUXE_LOG=luxe_core::hooks=debug luxe       # one part, in detail

See what is sent to the model

LUXE_WIRE_LOG records every request Luxe sends and every reply, with credentials removed. luxe wire summarizes it: what fills each request, whether the cached part stays the same between turns, and whether anything is sent twice.

LUXE_WIRE_LOG=/tmp/wire.jsonl luxe --headless -p "what does src/main.rs do?"
luxe wire /tmp/wire.jsonl
luxe wire /tmp/wire.jsonl --tools    # with each tool's share

The log stays on your machine and is off unless the variable is set.

Report a bug

Open an issue at github.com/evanwhittaker/luxe with:

  • luxe --version, your operating system and terminal
  • What you did, what you expected, and what happened
  • The relevant part of .luxe/logs/luxe.log

If the interface itself draws wrongly, such as stray characters or a half-drawn screen, record the raw output, which shows what Luxe actually wrote:

script -f /tmp/luxe.tty -c luxe       # replay with `cat` or `scriptreplay`
asciinema rec /tmp/luxe.cast -c luxe

Attach the recording and the log from the same time.