Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>ObfuskuNew to Visual Studio Code? Get it now.
Obfusku

Obfusku

Sxnnyside Project

|
1 install
| (0) | Free
Language support for Obfusku, the symbolic ritualistic esoteric programming language.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Obfusku for VS Code

Obfusku icon

Highlighting ✦ Live Diagnostics ✦ Project-Aware Tasks
Language support for Obfusku, the symbolic ritualistic esoteric programming language, directly inside VS Code.

Version License CI


Why This Extension

Obfusku expresses computation through a frozen alphabet of glyphs (λ, ≔, ⟡, ▷, ☄, ☊, ❧…) rather than ASCII keywords. Without editor support, that alphabet is just unrecognized text to VS Code — no highlighting, no error feedback until you run the CLI by hand, no sense of whether a directory is a Project or a bare file.

This extension closes that gap: it never reimplements any of Obfusku's language logic itself — parsing, type inference, and formatting all stay owned by the obfusku/obfusku-lsp binaries — it only wires their real output into VS Code's native UI.


Key Features

Syntax Highlighting

A TextMate grammar built directly from spec/CONCRETE_SYMBOLIC_GRAMMAR.md's glyph table — binders (≔ ˚ ⚙︎), control (⟡ ☄ ☊), base types, pattern/match syntax, and every operator at its correct precedence group.

Live Diagnostics

obfusku-lsp runs as a real language server, pushing type errors, parse errors, and warnings as you type — against the unsaved buffer, not just on save.

Formatting

Formats the current buffer through obfusku fmt, no save required first.

Project Support

Recognizes obfusku.toml (spec/adr/ADR-017/018/020) the same way the CLI does — walking upward from the active file:

  • Obfusku: Build Project and its editor-title icon appear only when the active file sits inside a Project.
  • Build/Run tasks (Terminal: Run Task → obfusku) for every workspace folder with a manifest, with errors and warnings attributed to the Project's entry file and surfaced in the Problems panel.
  • Schema-backed completion for obfusku.toml when the Even Better TOML extension is installed.

Commands

Command What it does
Obfusku: Run File Runs the active file with obfusku run and shows output
Obfusku: Type Check File Runs obfusku check and refreshes diagnostics
Obfusku: Format File Formats the active file
Obfusku: Open REPL Opens an integrated terminal running obfusku repl
Obfusku: Build Project Runs obfusku build (only shown inside a Project)
Obfusku: Show Language Server Output Opens the obfusku-lsp output channel

Status Bar

Shows whether obfusku-lsp is running, starting, or failed to start — click it to jump straight to the server's own log.

Snippets

Functions, bindings, type declarations (sum/record/tuple), match, conditionals, raise/catch, and imports.


Requirements

Both obfusku and obfusku-lsp must be installed and resolvable on PATH — the official install.sh installs both together:

curl -fsSL https://raw.githubusercontent.com/core-red-project/obfusku/main/install.sh | bash

If they live somewhere else, point to them explicitly:

{
  "obfusku.path": "/path/to/obfusku",
  "obfusku.lspPath": "/path/to/obfusku-lsp"
}

Compatible versions

The extension reads obfusku --version and enables only what that CLI can do. Tested against 1.0.0 and 1.1.0.

Feature 1.0.x 1.1.x
Live diagnostics (obfusku-lsp) yes yes
Error in an imported module drawn on the importing file at the imported file's line pinned to line 1 with an "in an imported module" prefix
Closing a file its diagnostics stay in Problems cleared
Buffer not on disk yet could not read '<path>' checked against its directory
Type Check File, Run, Build, REPL yes (text output) yes (JSON output)
Format File disabled: the 1.0 formatter deletes comments yes
Run Project Tests and the test task no yes
Manifest format 2 ([capabilities], [dependencies]…) no yes

The obfusku-lsp rows come from running the real server (tests/lsp, selectable with OBFUSKU_LSP_PATH and OBFUSKU_PATH); the extension cannot correct what a 1.0 server publishes.

A 1.0.x CLI shows a notice once. Anything from 2.0 on is outside the tested range and also notices once; 1.x releases after 1.1 keep every 1.1 feature. Keep obfusku and obfusku-lsp on the same version.

Settings

Setting Default Description
obfusku.path "obfusku" Path to the obfusku CLI executable
obfusku.lspPath "obfusku-lsp" Path to the obfusku-lsp language server executable

Known Limitations

  • With obfusku 1.0.x a brand-new file that is not on disk yet is reported as unreadable until it is saved once; 1.1 checks it against its directory.
  • No hover, go-to-definition, or completion yet — obfusku-lsp currently implements textDocument/publishDiagnostics only.
  • Build/Run tasks don't use a declarative problemMatcher: the CLI's plain-text diagnostic lines (error: message (line:col)) never include a filename, so a regex-based matcher has nothing to key on. Instead, the task provider resolves the Project's entry file itself and attributes diagnostics to it directly — correct for the common case, but a diagnostic that actually originates in an imported module still surfaces against the entry file, not the module that raised it.

Resources & Community

  • Obfusku language repository — specification, ADRs, CLI, and LSP source
  • Issue Tracker & Feature Requests
  • Contributing Guide

Obfusku for VS Code — A Core Red Project
© 2026 Sxnnyside Project. Distributed under the MIT License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft