Developer setup speedrun for Pop!_OS

25 November 2025

Pop!_OS developer setup speedrun below.

Nodejs

# Grab the NodeSource setup script for Node 20.x (LTS)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

# Install Node.js + npm
sudo apt install -y nodejs

# Optional: install extra build tools for native npm modules
sudo apt install -y build-essential

Let’s make some tweaks so we can install globally in a cleaner way

# Create a directory named `.npm-global` in the user's home directory
mkdir ~/.npm-global
# Configure npm to use the newly created directory as the default location for globally installed packages
npm config set prefix '~/.npm-global'
# Add the `bin` directory inside `.npm-global` to the system's PATH environment variable
export PATH=~/.npm-global/bin:$PATH
# Note: Adopt the below for your shell
# Append the export command to the end of the `.profile` file to ensure the PATH update persists across sessions
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.profile
# Refresh the current shell session to apply the changes made to the `.profile`
source ~/.profile

uv

curl -LsSf https://astral.sh/uv/install.sh | sh

Claude Code

# Deps
sudo apt install -y git ripgrep
# Note that we are not using sudo here deliberately
npm install -g @anthropic-ai/claude-code

OpenCode

npm install -g opencode-ai

ungoogled-chromium

sudo add-apt-repository ppa:xtradeb/apps
sudo apt update
sudo apt install ungoogled-chromium

zed

# - **`tar`** - Archive utility program
# - **`-C ~/bin`** - **Change directory** to `~/bin` before extracting (extracts files there instead of current directory)
# - **`-x`** - **Extract** files from the archive
# - **`-z`** - Decompress using **gzip** (handles `.gz` files)
# - **`-f`** - Specifies the **file** name that follows (`zed-linux-x86_64.tar.gz`)
# - **`zed-linux-x86_64.tar.gz`** - The archive file to extract

curl -LO https://github.com/zed-industries/zed/releases/download/v0.214.3-pre/zed-linux-x86_64.tar.gz
tar -C ~/bin -xzf zed-linux-x86_64.tar.gz
# Then want to link the binary so that zed is in ~/binary
cd ~/bin
ln -s ./zed-preview.app/bin/zed zed
cd

Go

sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt remove golang
# 1.24 recent at the time of writing
sudo apt install golang-1.24
# then need to prepend /usr/lib/go-1.24/bin/ to $PATH
export PATH="/usr/lib/go-1.24/bin:$PATH"

gollm

Because you want to be able to ask questions on the shell

git clone https://github.com/algrt-hm/gollm.git
make build
cp ./bin/gollm-linux-amd64 ~/bin/gollm

Cursor

Download the .deb from: https://cursor.com/download

sudo dpkg -i ./cursor_2.1.26_amd64.deb

Beeper

https://www.beeper.com/download/linux

to get the AppImage … e.g. Beeper-4.2.229-x86_64.AppImage

chmod u+x ./Beeper-4.2.229-x86_64.AppImage
./Beeper-4.2.229-x86_64.AppImage

claude-monitor

# Install directly from PyPI with uv (easiest)
uv tool install claude-monitor

# Run from anywhere
claude-monitor  # or cmonitor, ccmonitor for short

How do I set the default browser?

Settings->Default applications