Turbo Log Snippets
Turbo Console Log-inspired debug logging snippets for JS, TS, TSX, Python and PHP.
How to install
With Forge Super installed, the button above opens the app on this extension, where you press Install. Nothing is installed until you do.
You can also open the Extensions panel in the app and search for Turbo Log Snippets. The extension's id is turbo-log-snippets.
Don't have Forge Super yet? Download it here.
README
From the extension's repository, written by its authors and not by Mentenaz. See the source.
Turbo Log Snippets (Zed)
A minimum, snippet-only take on turbo-console-log for the Zed editor.
Install (dev extension)
- Open Zed → Command Palette (
Cmd/Ctrl-Shift-P) →zed: extensions. - Click Install Dev Extension and select this
turbo-log-snippetsfolder. - Open any
.js,.ts,.tsx,.py, or.phpfile and start typing a prefix from the table below, then hitTab.
No build step, no Rust — this is a pure declarative snippets extension (extension.toml + JSON snippet files), so nothing needs to be compiled.
Usage
| Language | Prefix | Inserts |
|---|---|---|
| JS/TS/TSX/JSX | tlog | console.log("🚀 ~ value:", value); |
| JS/TS/TSX/JSX | terr | console.error(...) |
| JS/TS/TSX/JSX | twarn | console.warn(...) |
| JS/TS/TSX/JSX | tinfo | console.info(...) |
| JS/TS/TSX/JSX | tdebug | console.debug(...) |
| JS/TS/TSX/JSX | ttable | console.table(value); |
| Python | tprint | print(f"🚀 ~ {value=}") |
| Python | tdebug/tinfo/twarn/terr | matching logging.* call |
| PHP | tdump | var_dump(...) |
| PHP | tprint | print_r(...) |
| PHP | terrlog | error_log(...) |
Type the variable name once at the tab stop — it's linked, so it fills both the label and the value in the same snippet expansion.
What this does NOT do (unlike the real VS Code extension)
Zed's extension API (as of mid-2026) has no buffer-editing/command API for extensions — only languages, themes, snippets, debuggers, and MCP/context servers. So this snippet-only version can't replicate:
- AST-aware insertion — it can't detect the enclosing variable/function/line under your cursor; you type the name yourself at the tab stop.
- File name / line number context — Turbo's
🚀 ~ file.ts:42 ~ value:format needs dynamic buffer info that Zed snippets don't expose. - Comment all / Uncomment all / Delete all logs — these require scanning and rewriting the whole buffer, not just inserting text at the cursor.
- Dedicated keybindings per command — snippets trigger by typing the prefix + Tab, not a bound shortcut like
⌘K ⌘L. You can bind a key to Zed's genericeditor::ExpandSnippetaction if you want, but it's not per-prefix.
There's an open feature request for a real editor-aware extension API in Zed
(zed-industries/zed discussions #46272 and #53131) — once/if that ships, a true AST-aware port becomes possible.