Skip to content
Go back

Replace Cursor with a Minimal VSCodium AppImage

Edit page

Goal: an editor that does 3 things and little else, self-contained, deletable in one step.

Verdict: VSCodium AppImage + a minimal Open VSX extension set covers all 3 functions with zero pacman/AUR additions, no account, and no forced agent panel. Chosen over a system package for the “delete it and it’s gone” model.

The 3 things it must do: (1) a file tree with git status tags; (2) view/edit source with Vim keys; (3) render Markdown with Mermaid + PlantUML diagrams. Everything else is deliberately out of scope — details are in “Mapping the 3 functions to tools” below.

Infographic: Replace Cursor with a Minimal VSCodium AppImage — the Cursor-vs-VSCodium comparison, where your code goes, the footprint, and the three functions

Why leave Cursor

The two things I dislike most, and everything else is downstream of them:

  1. Forced agent on launch — the agent is Cursor’s centre of gravity, so it opens itself; there is no “editor only” default landing state.
  2. Telemetry & privacy exposure — the editor is a data path by design (expanded in the next section).
GrievanceCursor behaviourVSCodium behaviour
Forced agent on launchChat/agent pane opens itselfNo agent; you launch OpenCode yourself in your own terminal (Kitty), outside VSCodium
Account / sign-in gateAccount wall to reach the AI-native editorNo login to launch, edit, or install extensions
Lock-in to one vendor’s agentBuilt-in, replaceable only via workaroundsCore OSS is agent-agnostic; OpenCode is just a TUI in your own terminal
Update naggingFrequent, forced upgrade promptsupdate.mode: none; the AppImage updates only when you replace the file
Feature bloat / condescensionAccounts, AI, telemetry, tip popupsStrip to editor + tree + preview via settings.json

Telemetry & end-user privacy

The structural difference: Cursor’s editor is a data path; VSCodium’s editor is not.

VSCodium — telemetry crippled at build time, and its settings off by default

Slightly weaker than “removed,” and VSCodium says so itself: they “do not pass the telemetry build flags and go out of our way to cripple the baked-in telemetry,” but warn that “Microsoft still can track usage by default depending on your settings.” The guarantee is a build without the MS telemetry flags plus these preferences, which VSCodium ships off by default (per its docs/telemetry.md):

telemetry.telemetryLevel
telemetry.enableCrashReporter
telemetry.enableTelemetry
telemetry.editStats.enabled
workbench.enableExperiments
workbench.settings.enableNaturalLanguageSearch
workbench.commandPalette.experimental.enableNaturalLanguageSearch

Microsoft’s online services are replaced, not merely disabled:

Remaining network surface is the extension-control list fetch above, plus (a) opt-in metadata and (b) whatever the extensions themselves do. PlantUML renders locally here — MPE’s builtin plantuml.jar + system java, no server — but two honest caveats: VSCodium can’t police extension telemetry (some extensions, e.g. Microsoft’s C#, phone home, and that is the author’s choice), and MPE’s preview webview can fetch assets from cdn.jsdelivr.net (a fetch for JS/CSS, not code egress). Audit what actually connects:

# while VSCodium is idle, expect zero established connections
ss -tpn | grep -i codium
# or, per-socket, watch during extension install
lsof -i -a -c VSCodium

No account either: VSCodium never asks you to log in to launch, edit, or install extensions — “An account authentication occurs only when an extension is asking for it” (docs/accounts-authentication.md). Its only sign-in is opt-in and token-based (Sign in with GitHub, needed only when an extension like GitLens requires it): no account wall, unlike Cursor’s launch flow.

Cursor — AI-first, so all traffic routes through its backend by design

From Cursor’s own Data Use & Privacy Overview (updated 2026-09-03):

You can opt out of training with Privacy Mode, but you cannot opt out of routing — the editor and the agent are one product, and the product is the backend.

Net effect

Where code goesWhenTo whom
CursorCursor backend, by designOn normal editor/agent useCursor, then their model subprocessors
VSCodium + OpenCodeOff the machine only when you invoke the agentWhen you run OpenCodeThe provider you configured, under that provider’s terms

So dropping Cursor removes a standing data path you don’t control; with VSCodium the editor is inert and the only egress is OpenCode, invoked deliberately against a provider you chose.

Mapping the 3 functions to tools

  1. File navigator with git status tags → Explorer + the bundled git extension (git.decorations.enabled). No extra dependency — git is already installed.
  2. View / edit source, including Markdown → built-in editor + Markdown grammar, driven by Vim keys (vscodevim.vim).
  3. Markdown rendering + mermaid + plantuml diagrams → Mermaid is built into the default preview (shipped as the built-in mermaid-markdown-features extension); PlantUML comes from Markdown Preview Enhanced (shd101wyy.markdown-preview-enhanced), rendered locally via its builtin plantuml.jar + system java. MPE renders Mermaid too, so either preview works — the settings notes below cover the one MPE default that otherwise hides the built-in preview buttons.

Verified environment (read-only checks)

FactValue
FUSE (AppImage runtime)fuse2 2.9.9-6, fuse3 3.18.3-1, /usr/bin/fusermount{3} setuid — present
Existing CursorAppImage no longer present; only config remains (see Footprint)
git2.56.0
Diagram depsgraphviz present, jre-openjdk 27 present, ~/pool/Downloads/rog_drive/plantuml.jar present
OpenCode1.19.0 at ~/.opencode/bin/opencode
Latest VSCodium1.140.06880 (x86_64 AppImage published on GitHub releases)

Install — AppImage, checksum verified

Non-root, no pacman. AppImage lives outside the system package DB; removing it leaves no footprint except the config dir. Chosen over the AUR vscodium-bin / extra/code (drag in pacman deps) and Flatpak (drags in a whole runtime) precisely for that: self-contained and delete-and-go.

mkdir -p ~/.local/bin
cd ~/.local/bin

VER=1.140.06880
BASE=https://github.com/VSCodium/vscodium/releases/download/$VER
curl -fLO "$BASE/VSCodium-$VER-anylinux-x86_64.AppImage"
curl -fLO "$BASE/VSCodium-$VER-anylinux-x86_64.AppImage.sha256"

sha256sum -c "VSCodium-$VER-anylinux-x86_64.AppImage.sha256"

chmod +x "VSCodium-$VER-anylinux-x86_64.AppImage"
ln -sf "VSCodium-$VER-anylinux-x86_64.AppImage" VSCodium.AppImage   # stable name, survives version bumps

Note: AppImage anylinux builds work as-is on Arch’s glibc; if one ever fails to self-mount, run it with --appimage-extract-and-run (no FUSE needed). FUSE is present here, so not expected.

Updating: download the new AppImage and re-point VSCodium.AppImage at it (ln -sf "VSCodium-$VER-anylinux-x86_64.AppImage" VSCodium.AppImage); nothing self-updates, and extensions refresh only on demand.

Extensions (Open VSX, no Microsoft account)

Open VSX is the Eclipse Foundation’s vendor-neutral extension registry — the free stand-in for Microsoft’s Visual Studio Marketplace, which is licensed for official VS Code only (so OSS builds like VSCodium can’t use it). VSCodium’s gallery points at it by default, so no marketplace flag or Microsoft account is required. The set is deliberately three — nothing the built-in core already does is re-added. Install counts are pulled from the Open VSX API (re-check any of them, e.g. curl -s https://open-vsx.org/api/shd101wyy/markdown-preview-enhanced | jq .downloadCount):

FunctionExtension (ID)VersionOpen VSX installs
Vim keys (primary editing mode)vscodevim.vim1.32.41,956,779
Markdown preview + PlantUML (own preview; also covers Mermaid)shd101wyy.markdown-preview-enhanced0.8.402,437,299
Markdown → PDF (optional)yzane.markdown-pdf2.2.0255,423
V=~/.local/bin/VSCodium.AppImage

$V --install-extension vscodevim.vim
$V --install-extension shd101wyy.markdown-preview-enhanced
$V --install-extension yzane.markdown-pdf

Minimal settings.json

Write to ~/.config/VSCodium/User/settings.json — nothing touches ~/.config/Cursor/. Everything else stays at defaults.

{
  "update.mode": "none",
  "extensions.autoCheckUpdates": false,
  "extensions.autoUpdate": false,
  "telemetry.telemetryLevel": "off",
  "telemetry.feedback.enabled": false,
  "workbench.startupEditor": "none",
  "workbench.tips.enabled": false,
  "workbench.enableExperiments": false,
  "workbench.welcomePage.extraAnnouncements": false,
  "workbench.settings.enableNaturalLanguageSearch": false,
  "workbench.commandPalette.experimental.enableNaturalLanguageSearch": false,
  "window.restoreWindows": "none",
  "editor.minimap.enabled": false,
  "git.enabled": true,
  "git.decorations.enabled": true,
  "vim.useSystemClipboard": true,
  "markdown-pdf.executablePath": "/usr/bin/chromium",
  "markdown-preview-enhanced.plantumlServer": "",
  "markdown-preview-enhanced.plantumlJarPath": "/home/jeff/pool/Downloads/rog_drive/plantuml.jar",
  "markdown-preview-enhanced.hideDefaultVSCodeMarkdownPreviewButtons": false
}

OpenCode outside the editor

No extension, no integration. Run OpenCode in your own terminal emulator — here, Kitty, completely outside VSCodium:

opencode

VSCodium never opens an agent pane on its own, and OpenCode never runs inside it. This is the whole point of dropping Cursor: the editor and the agent are separate processes.

Optional — launcher entry and $PATH

Only if you want a menu/keybind launch. ~/.local/share/applications/VSCodium.desktop:

[Desktop Entry]
Type=Application
Name=VSCodium
Exec=/home/jeff/.local/bin/VSCodium.AppImage %F
Terminal=false
Categories=Utility;TextEditor;Development;
MimeType=text/plain;text/markdown;inode/directory;

The AppImage installs no icon, so omit Icon= (as above) or extract the real one with $V --appimage-extract 'code.svg' — the icon is code.svg (also .DirIcon), and *.png pulls 170+ unrelated UI icons, not the app icon. Point Icon= at the extracted SVG. For shell use: ln -s "$V" ~/.local/bin/codium.

What this is NOT (honest tradeoff)

Footprint

ArtifactBytesMiB
Cursor AppImage (before removal)294,255,096280.6
VSCodium AppImage193,460,378184.5
VSCodium extracted on disk (du)833,792,301795.2
Cursor config left behind (~/.config/Cursor + ~/.cursor)—≈ 825

Rollback / uninstall

Everything is contained:

rm -f ~/.local/bin/VSCodium.AppImage ~/.local/bin/VSCodium-*.AppImage*
rm -rf ~/.config/VSCodium ~/.vscode-oss ~/.cache/VSCodium ~/.local/share/VSCodium
rm -f ~/.local/bin/codium ~/.local/share/applications/VSCodium.desktop

No pacman packages were added; nothing else references it.

If you are also retiring Cursor (manual)

Cursor is removed by hand and is separate from the VSCodium uninstall. Delete the app and any launcher, then the profile it leaves behind (see Footprint):

# adjust the AppImage path to wherever you kept Cursor
rm -f ~/Downloads/Cursor-*.AppImage ~/.local/bin/cursor ~/.local/share/applications/cursor.desktop
rm -rf ~/.config/Cursor ~/.cursor
ls -d ~/.config/Cursor ~/.cursor 2>/dev/null || echo "Cursor purged"

No pacman packages are involved either way — Cursor was never in the system package DB.

Verification checklist

btw, i use arch


Edit page
Share this post on:

Next Post
Where Does Brave's Leo AI Keep Your Data?