adom-vscode-macos
Public Made by Adomby adom
macOS Hydrogen line of adom-vscode: the same CLI + VS Code extension (same extension id, same :8821 API) built natively for the arm64 Linux workspace Hydrogen runs on a Mac, minus the AI title bar (Hydrogen's agent bar and AI accounts popup own the title bar there). Installs over adom/adom-vscode; Hydrogen keeps this line registered. Upstream: adom-inc/adom-vscode.
name: adom-vscode-settings description: "Get/set ANY VS Code setting, the color theme, fonts, and font sizes LIVE from inside the container, with no window reload, so active Claude/AI sessions survive. Uses the native VS Code API (ConfigurationTarget.Global), the fix for settings.json merges that hang or need a workbench reload. Also reports the RESOLVED font family the renderer truly shows (document.fonts.check), not just the configured stack. Trigger words: change theme, set theme, vscode theme, dark theme, set font, change font, font size, editor font, terminal font size, chat font, prose font, vscode setting, config get, config set, workbench.colorTheme, editor.fontFamily, editor.fontSize, chat.fontFamily, live settings, no reload, which font is active, resolved font, font not applying, theme without reload."
Parent skill: adom-vscode
adom-vscode-settings, live config / theme / fonts
Every verb here applies through vscode.workspace.getConfiguration().update(key, value, ConfigurationTarget.Global), which lands immediately: no window
reload, no settings.json file merge, and active Claude Code sessions survive.
Prefer these over editing ~/.local/share/code-server/User/settings.json by
hand, and NEVER route a settings change through an out-of-band host spawn
(wsl.exe on Windows, limactl/nsenter or POST 127.0.0.1:47084/workspace/exec
on macOS).
Any setting
adom-vscode config get workbench.colorTheme # effective value + default/global/workspace layers
adom-vscode config set editor.fontSize 14 # values parse as JSON when possible, else string
adom-vscode config set workbench.statusBar.visible false
HTTP: GET /config?key=<dotted.key>, POST /config {key, value}.
Theme
adom-vscode theme get # active + preferredDark/preferredLight + EVERY installed theme
adom-vscode theme set "Adom Studio Dark" # switches live. Installed Adom labels:
# Adom Studio, Adom Studio Dark,
# Adom Studio Dark (Brighter Text),
# Adom Kickstand, Adom Slate.
# An unknown label answers known:false and
# leaves the editor on the default (white) theme —
# always read `theme get` for the real list first.
theme get enumerates every theme contributed by installed extensions
(label, uiTheme, owning extension), so you can offer the user a real list.
theme set warns (but still applies) if the name is not among installed
themes; a wrong name silently falls back to the default look, so check the
available list when a set "didn't take".
HTTP: GET /theme, POST /theme {theme}.
Fonts
adom-vscode font get # all font settings + RESOLVED (truly rendered) families
adom-vscode font set --editor-family "Fira Code" --prose-family Inter --editor-size 14
adom-vscode font-size get
adom-vscode font-size set --editor 14 --terminal 13 --prose 15 --prose-code 13
The key map (CLI flag -> settings key):
| Flag | Key | What it styles |
|---|---|---|
--editor-family |
editor.fontFamily |
Code editor |
--editor-size |
editor.fontSize |
Code editor |
--terminal-size |
terminal.integrated.fontSize |
Integrated terminal |
--prose-family |
chat.fontFamily |
Chat prose (Claude panel text) |
--prose-size |
chat.fontSize |
Chat prose |
--prose-code-family |
chat.editor.fontFamily |
Chat code blocks |
--prose-code-size |
chat.editor.fontSize |
Chat code blocks |
HTTP: GET /fonts, POST /fonts {editorFamily?, proseFamily?, proseCodeFamily?, editorSize?, terminalSize?, proseSize?, proseCodeSize?} (any subset).
Resolved fonts, the part HD needs
The configured stack often names fonts that are NOT installed on the rendering
side (the user's browser or the HD webview), so reading the setting alone lies.
font get also returns resolved: the first family in each stack that the
renderer can truly draw, checked with document.fonts.check inside the
workbench (via the Adom sidebar webview). If the sidebar webview is not alive
the response says so (resolved.via: null plus a note) and only configured
values are returned; the check works again once the Adom sidebar has been opened.
Gotchas
- Font/theme changes by these verbs need NO reload. If a user reports a settings change "didn't apply", suspect the old host-spawn/settings.json path or a wrong key name, not these verbs.
config setwrites the Global (User) layer. A workspace-layer override (.vscode/settings.json) still wins;config getshows all layers so you can see when that is happening.
---
name: adom-vscode-settings
description: "Get/set ANY VS Code setting, the color theme, fonts, and font sizes LIVE from inside the container, with no window reload, so active Claude/AI sessions survive. Uses the native VS Code API (ConfigurationTarget.Global), the fix for settings.json merges that hang or need a workbench reload. Also reports the RESOLVED font family the renderer truly shows (document.fonts.check), not just the configured stack. Trigger words: change theme, set theme, vscode theme, dark theme, set font, change font, font size, editor font, terminal font size, chat font, prose font, vscode setting, config get, config set, workbench.colorTheme, editor.fontFamily, editor.fontSize, chat.fontFamily, live settings, no reload, which font is active, resolved font, font not applying, theme without reload."
---
Parent skill: **adom-vscode**
# adom-vscode-settings, live config / theme / fonts
Every verb here applies through `vscode.workspace.getConfiguration().update(key,
value, ConfigurationTarget.Global)`, which lands **immediately**: no window
reload, no settings.json file merge, and active Claude Code sessions survive.
Prefer these over editing `~/.local/share/code-server/User/settings.json` by
hand, and NEVER route a settings change through an out-of-band host spawn
(`wsl.exe` on Windows, `limactl`/`nsenter` or `POST 127.0.0.1:47084/workspace/exec`
on macOS).
## Any setting
```bash
adom-vscode config get workbench.colorTheme # effective value + default/global/workspace layers
adom-vscode config set editor.fontSize 14 # values parse as JSON when possible, else string
adom-vscode config set workbench.statusBar.visible false
```
HTTP: `GET /config?key=<dotted.key>`, `POST /config {key, value}`.
## Theme
```bash
adom-vscode theme get # active + preferredDark/preferredLight + EVERY installed theme
adom-vscode theme set "Adom Studio Dark" # switches live. Installed Adom labels:
# Adom Studio, Adom Studio Dark,
# Adom Studio Dark (Brighter Text),
# Adom Kickstand, Adom Slate.
# An unknown label answers known:false and
# leaves the editor on the default (white) theme —
# always read `theme get` for the real list first.
```
`theme get` enumerates every theme contributed by installed extensions
(label, uiTheme, owning extension), so you can offer the user a real list.
`theme set` warns (but still applies) if the name is not among installed
themes; a wrong name silently falls back to the default look, so check the
`available` list when a set "didn't take".
HTTP: `GET /theme`, `POST /theme {theme}`.
## Fonts
```bash
adom-vscode font get # all font settings + RESOLVED (truly rendered) families
adom-vscode font set --editor-family "Fira Code" --prose-family Inter --editor-size 14
adom-vscode font-size get
adom-vscode font-size set --editor 14 --terminal 13 --prose 15 --prose-code 13
```
The key map (CLI flag -> settings key):
| Flag | Key | What it styles |
|---|---|---|
| `--editor-family` | `editor.fontFamily` | Code editor |
| `--editor-size` | `editor.fontSize` | Code editor |
| `--terminal-size` | `terminal.integrated.fontSize` | Integrated terminal |
| `--prose-family` | `chat.fontFamily` | Chat prose (Claude panel text) |
| `--prose-size` | `chat.fontSize` | Chat prose |
| `--prose-code-family` | `chat.editor.fontFamily` | Chat code blocks |
| `--prose-code-size` | `chat.editor.fontSize` | Chat code blocks |
HTTP: `GET /fonts`, `POST /fonts {editorFamily?, proseFamily?, proseCodeFamily?,
editorSize?, terminalSize?, proseSize?, proseCodeSize?}` (any subset).
## Resolved fonts, the part HD needs
The configured stack often names fonts that are NOT installed on the rendering
side (the user's browser or the HD webview), so reading the setting alone lies.
`font get` also returns `resolved`: the first family in each stack that the
renderer can truly draw, checked with `document.fonts.check` inside the
workbench (via the Adom sidebar webview). If the sidebar webview is not alive
the response says so (`resolved.via: null` plus a note) and only configured
values are returned; the check works again once the Adom sidebar has been opened.
## Gotchas
- Font/theme changes by these verbs need NO reload. If a user reports a settings
change "didn't apply", suspect the old host-spawn/settings.json path or a wrong
key name, not these verbs.
- `config set` writes the Global (User) layer. A workspace-layer override
(`.vscode/settings.json`) still wins; `config get` shows all layers so you can
see when that is happening.