User Tools

Site Tools


config:vscode

VS Code

This article describes the installation and basic configuration for Microsoft Visual Studio Code including Python and OpenAI Codex support.

sudo apt-get install wget gpg && wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg && sudo install -D -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/microsoft.gpg && rm -f microsoft.gpg

sudo tee /etc/apt/sources.list.d/vscode.sources &>/dev/null <<EOF
Types: deb
URIs: https://packages.microsoft.com/repos/code
Suites: stable
Components: main
Architectures: amd64,arm64,armhf
Signed-By: /usr/share/keyrings/microsoft.gpg
EOF

sudo apt install apt-transport-https && sudo apt update && sudo apt install code
sudo apt-get install gvfs libglib2.0-bin

sudo tee -a /etc/sysctl.conf &>/dev/null <<EOF
fs.inotify.max_user_watches=524288
EOF

sudo sysctl -p

Disable the internal AI features and telemetry:

  • Settings → Chat → Disable AI Features
  • Settings → telemetry.telemetryLevel → Off
  • Settings → application → update → update:mode → None (as updated through apt)
sudo apt install sqlite3

Keyboard shortcut changes (CTRL+K CTRL+S):

  • Copy Line Down → CTRL + D

To use new hybrid markdown editor (v1.131.0) as default, go to settings →
workbench.editor → add *.md to vscode.markdown.editor

Marketplace addons/plugins/extensions

Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.

# GitLens:
ext install eamodio.gitlens

# OpenAI ChatGPT/Codex:
ext install openai.chatgpt

# Codex rate limit plugin. Set refresh to 60 seconds. Default is 10 seconds.
ext install xiangz19.codex-ratelimit

# Anthropic Claude Code:
ext install anthropic.claude-code

# Claude Status:
ext install long-kudo.vscode-claude-status

# Python:
ext install ms-python.python
ext install ms-python.debugpy
ext install ms-python.vscode-python-envs
ext install ms-python.vscode-pylance

# SFTP:
ext install Natizyskunk.sftp

# SQLite:
ext install alexcvzz.vscode-sqlite

move codex/claude icon to right sidebar

Note: To authenticate the ChatGPT/Codex plugin within VS Code Server docker image, the following needs to be done on the docker main system. The codex binary is in the plugin version's directory and vscode runs under user abc. For this to work, the device auth needs to be enabled in chatgpt codex security settings:

docker exec -it -u abc vscode sh -lc '
CODEX_BIN="$(find /config/extensions -path "*/bin/linux-x86_64/codex" | head -n1)"
"$CODEX_BIN" login --device-auth
'

SFTP extension for remote up/download of files:
https://marketplace.visualstudio.com/items?itemName=Natizyskunk.sftp
example config:

{
    "name": "remote-name",
    "host": "remote-hostname",
    "protocol": "sftp",
    "port": 22,
    "username": "root",
    "privateKeyPath": "/home/user/.ssh/id_rsa",
    "remotePath": "/var/www/htdocs",
    "uploadOnSave": false,
    "useTempFile": false,
    "openSsh": false
}

Persistent Conf

Open Command Palette:
Ctrl+Shift+P
then:
Preferences: Open User Settings (JSON)
and paste the settings below.

{
    "window.restoreWindows": "preserve",
    "chat.restoreLastPanelSession": true,
    "terminal.integrated.persistentSessionReviveProcess": "onExitAndWindowClose",
    "files.hotExit": "onExitAndWindowClose",
    "workbench.editor.restoreViewState": true,
    "terminal.integrated.enablePersistentSessions": true,
    "workbench.colorTheme": "Dark 2026",    
}

For vscodium-web, to restore project windows/open files etc, link to the exact project file like:
https://vscodium-web.example.com/?workspace=/src/projects/something.code-workspace

Claude Code History

Claude Code local sessions are stored in ~/.claude/projects in directories with the absolute path of the project with forward slashes replaced with “-”. Whenever a project folder gets moved/renamed, the respective claude project directory needs to be renamed as well to retain the session history.

Claude Code Remote Control

Remote control of VSCode sessions can be activated by entering the following into the claude session:

/remote-control

or

/remote-control My Project Name

Push notifications for the claude app (does not work in browser) can be set using:

/config agentPushNotifEnabled=true
/config inputNeededNotifEnabled=true
/config remoteControl=true

:!: Remote control may cause crashes when used in the vscode plugin!

Then login via claude.ai/code on mobile or browser or claude app on different device.

Claude code bypass permission mode

To bypass all permission requests (dangerous!) in vscode, the following setting needs to be adjusted:
settings → search for claude code → enable bypass permissions mode (dangerous) and set default to bypass permissions mode.
set ask before edits/edit automatically to bypass permissions in the chat interface.
may need reload of the whole chat session to activate.

Once activated, in the chat, shift+tab can be used to scroll through edit type options

https://www.youtube.com/watch?v=86HM0RUWhCk&t=740s

Note: Bypass permission mode does NOT work when remote-controlling sessions. Every instruction via a remote-controlled session changes the permission mode to the available setting from the external device and will prompt. Bypass permissions only works through the vscode extension chat.

This can be set globally in .claude/settings.json in the permissions block like so:

"permissions": {
  "allow": [
    "WebSearch",
    "WebFetch(domain:github.com)",
    "WebFetch(domain:raw.githubusercontent.com)",
    "WebFetch(domain:api.github.com)",
    "Edit",
    "Write",
    "Bash(node *)",
    "Bash(curl -s *)"
  ],
  "defaultMode": "bypassPermissions"
}

Claude Code Behaviour

Create or edit ~/.claude/CLAUDE.md
Paste the negative constraint inside the file:

Never comment on the time of day, how late it is, or suggest that I take a break, get some rest, or go to sleep.

Save the file. Claude Code will automatically ingest this instruction at the start of every new chat session.

Claude Code CLI

To use the CLI of claude code installed with the extension, add the path to .profile or .bashrc (whichever is required on your system). The direct extension path keeps changing, but separate version is available through .local/bin. Note that similar to vscode, the sessions are stored per working folder and then shared between vscode extension and cli. Open CLI code in the appropriate working directory for your project to /resume sessions:

add claude to bashrc path:
# Add claude to path
#export PATH="$HOME/.vscode/extensions/anthropic.claude-code-2.1.245-linux-x64/resources/native-binary:$PATH"
export PATH="$HOME/.local/bin:$PATH"

To add a Claude Code CLI status bar:
GitHub: https://github.com/bhutano/claude-usage-bar

git clone https://github.com/bhutano/claude-usage-bar.git
cd claude-usage-bar
bash install.sh

Multi-account proxy teamclaude:
https://github.com/KarpelesLab/teamclaude

npm install -g @karpeleslab/teamclaude
teamclaude import
teamclaude alias --install
source .bashrc
teamclaude server --headless
claude
config/vscode.txt · Last modified: by Wuff