Troubleshooting
If you're stuck, open an issue or check existing reports.
Version
The latest version of the Codebuff client can be found on the npm page.
Run codebuff --version to make sure you're on the latest version.
Codebuff should auto-update. If not, try the steps below.
Codebuff not updating
If you see the npm install run but Codebuff 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 codebuff.
Install failed
If npm install -g codebuff 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 Codebuff is stored locally (and nowhere else) at ~/.config/manicode/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/codebuff@someversion/node_modules/codebuff/dist/common/websockets/websocket-client.js:158reject(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/codebuff@someversion/node_modules/codebuff/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:
- Check your internet connection.
- Try logging out and back in with
logoutfollowed bylogin.
Endless Auto-Updates
If Codebuff 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:
-
Check your Node and npm paths:
bashwhich nodewhich npmIf these point to Homebrew paths (e.g.,
/opt/homebrew/bin/) instead of nvm paths (e.g.,~/.nvm/versions/), that's the issue. -
Check what packages depend on Node through Homebrew:
bashbrew uninstall nodeThis will show you any packages that depend on Node.
-
If you don't need those packages anymore, you can uninstall them. This will automatically remove Node as a dependency.
-
After this cleanup, your
which nodeandwhich npmcommands should point to your nvm installation, and Codebuff should work as expected.
Command Not Found
If you see "command not found" when trying to run Codebuff:
- Ensure Codebuff is installed globally:
npm install -g codebuff - Check that your PATH includes npm's global bin directory
- Try running
which codebuffto verify the installation location
Directory Not Empty
If you see an error like this:
npm ERR! code ENOTEMPTYnpm ERR! syscall renamenpm ERR! path /some/path/to/node_modules/codebuffnpm ERR! dest /some/path/to/node_modules/.codebuff-SOMEHASHnpm ERR! errno -66npm ERR! ENOTEMPTY: directory not empty, rename '/some/path/to/node_modules/codebuff' -> '/some/path/to/node_modules/.codebuff-SOMEHASH'
It means you have a directory named .codebuff-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/.codebuff-SOMEHASH
Automating Codebuff with tmux
If you're trying to automate Codebuff 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 droppedtmux send-keys -t codebuff "hello world"tmux send-keys -t codebuff Enter# Result: Only "d" appears in the input!
The Solution:
Use bracketed paste mode by wrapping your input in escape sequences:
# ✅ Works correctlytmux send-keys -t codebuff $'\e[200~hello world\e[201~'tmux send-keys -t codebuff Enter# Result: "hello world" appears correctly!
This tells the terminal that the input is a paste operation, which Codebuff handles atomically.
Helper script:
send_to_codebuff() {local session="$1"local text="$2"tmux send-keys -t "$session" $'\e[200~'"$text"$'\e[201~'}# Usage:send_to_codebuff my-session "fix the bug in main.ts"tmux send-keys -t my-session Enter
Need More Help?
If you're still experiencing issues:
- Open an issue on GitHub
- Join the Discord community
- Contact support@codebuff.com – replies may take a few days