Table of Contents
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
