LevelCode

Troubleshooting

Open an issue or check existing reports.

Version

The latest version of the LevelCode client can be found on the npm page.

Run levelcode --version to make sure you're on the latest version.

LevelCode should auto-update. If not, try the steps below.

LevelCode not updating

If you see the npm install run but LevelCode still isn't at the latest version, this is most likely an issue with npm's cache. Try running npm cache clean --force and then npm install -g @levelcode/cli.

Install failed

If npm install -g @levelcode/cli gave you an error regarding permissions, try using setting the owner of that directory to your user.

Mac/Linux: sudo chown -R $(whoami) <directory>

Windows: cmd takeown /F <directory> /R /D Y

Otherwise reinstall node with nvm or fnm and rerun the install.

Accessing Your Chat History

Your conversation history with LevelCode is stored locally (and nowhere else) at ~/.config/levelcode/projects/<your-project-name>/chats.

Include recent chats if you ask for help.

Common Issues

Connection Issues

If you see a message like this:

/Users/<youruser>/Library/pnpm/global/5/.pnpm/levelcode@someversion/node_modules/levelcode/dist/common/websockets/websocket-client.js:158
reject(new Error(`Websocket message with txid ${txid} timed out.`)); ^
Error: Websocket message with txid 32 timed out.
at Timeout._onTimeout (/Users/<youruser>/Library/pnpm/global/5/.pnpm/levelcode@someversion/node_modules/levelcode/dist/common/websockets/websocket-client.js:158:28)
at listOnTimeout (node:internal/timers:594:17)
at process.processTimers (node:internal/timers:529:7)
Node.js v22.12.0

it means you're having connection issues. In that case, try:

  1. Check your internet connection.
  2. Try logging out and back in with logout followed by login.

Endless Auto-Updates

If LevelCode keeps trying to update itself in a loop, check the items below:

Conflicting Node/npm Installations (Homebrew vs. nvm)

One common cause is having conflicting Node/npm installations on your system, particularly between Homebrew and nvm. Here's how to diagnose and fix this:

  1. Check your Node and npm paths:

    which node
    which npm

    If these point to Homebrew paths (e.g., /opt/homebrew/bin/) instead of nvm paths (e.g., ~/.nvm/versions/), that's the issue.

  2. Check what packages depend on Node through Homebrew:

    brew uninstall node

    This will show you any packages that depend on Node.

  3. If you don't need those packages anymore, you can uninstall them. This will automatically remove Node as a dependency.

  4. After this cleanup, your which node and which npm commands should point to your nvm installation, and LevelCode should work as expected.

Command Not Found

If you see "command not found" when trying to run LevelCode:

  1. Ensure LevelCode is installed globally: npm install -g @levelcode/cli
  2. Check that your PATH includes npm's global bin directory
  3. Try running which levelcode to verify the installation location

Directory Not Empty

If you see an error like this:

npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /some/path/to/node_modules/levelcode
npm ERR! dest /some/path/to/node_modules/.levelcode-SOMEHASH
npm ERR! errno -66
npm ERR! ENOTEMPTY: directory not empty, rename '/some/path/to/node_modules/levelcode' -> '/some/path/to/node_modules/.levelcode-SOMEHASH'

It means you have a directory named .levelcode-SOMEHASH in your node_modules directory. This is a temporary directory created by npm when installing packages. You can safely delete this directory and try again:

rm -rf /some/path/to/node_modules/.levelcode-SOMEHASH

Automating LevelCode with tmux

If you're trying to automate LevelCode using tmux (e.g., for scripting or testing), standard tmux send-keys won't work correctly. Characters will be dropped or garbled.

The Problem:

# ❌ Doesn't work - characters get dropped
tmux send-keys -t levelcode "hello world"
tmux send-keys -t levelcode Enter
# Result: Only "d" appears in the input!

The Solution:

Use bracketed paste mode by wrapping your input in escape sequences:

# ✅ Works correctly
tmux send-keys -t levelcode $'\e[200~hello world\e[201~'
tmux send-keys -t levelcode Enter
# Result: "hello world" appears correctly!

This tells the terminal that the input is a paste operation, which LevelCode handles atomically.

Helper script:

send_to_levelcode() {
local session="$1"
local text="$2"
tmux send-keys -t "$session" $'\e[200~'"$text"$'\e[201~'
}
# Usage:
send_to_levelcode my-session "fix the bug in main.ts"
tmux send-keys -t my-session Enter

Need More Help?

  1. Open an issue on GitHub
  2. Join the Discord community
  3. Contact yethikrishnarcvn7a@gmail.com – replies may take a few days