✨ Early access — Transform JSON, YAML, TOML and CSV with Python molds directly in VS Code. Install the VSIX from GitHub Releases while Marketplace publishing is pending.
Transform structured data files (JSON, YAML, TOML, CSV) using Python mold scripts — right from your editor.
This extension wraps the fimod CLI, giving you a visual workflow for shaping data without leaving VS Code.
- 🚀 Usage guide - Shape files from the editor, explorer, or command palette.
- 🧪 Playground guide - Iterate on inputs, molds, inline scripts, and live watch output.
- 🗂️ Molds guide - Work with Registry Molds, Workspace Molds, mold details, and tests.
- 🛠️ Troubleshooting - Fix binary setup, VSIX install, mold errors, watch refresh, and format issues.
One command to transform any data file: select a mold or type a Python expression, preview the diff, apply.
- From the editor: select text (or use the whole file) →
Ctrl+Shift+M→ pick a mold or type an expression → review diff → apply - From the explorer: right-click a file → Fimod → Shape
- Inline expressions: type any Python expression directly (e.g.
[x for x in data if x["active"]]) - Molds: reusable Python scripts from your registries (
@mold-name)
The Shape quick pick includes toggle buttons to control behavior on the fly:
- Preview (
eye/eye-closed): show a diff before applying - Format (
symbol-file/notebook-open-as-text): auto-detect or manually choose input/output formats
The title bar displays the current state: preview: on · formats: auto.
Your last mold/expression choices appear at the top of the quick pick for quick reuse. History persists across VS Code sessions.
Browse all configured mold registries from the activity bar sidebar.
- View sources (local, GitHub, remote) and their molds
- Add or remove sources
- Set default source and reorder priorities
- Build catalog for local sources
- One-click setup for the official registry
See molds discovered from the current workspace and configured scan paths.
- Open the mold source file directly
- Run a mold on a file
- Run mold tests
- View mold details
Click any mold in the tree views to open a detail panel:
- Documentation (README fetched from local path or GitHub URL)
- Full source code
- Mini playground — paste any input (JSON, YAML, CSV, text...), pick format, run, see output
A dedicated side panel for iterating on molds with live feedback — ideal when authoring or tuning a mold against real input.
- Input source: load from a file, paste from clipboard, or type directly in a scratchpad
- Mold source: pick a registry mold (
@name), a workspace mold file, or type an inline expression - Live mode (on by default): uses
fimod shape --watchto re-run automatically while you edit the input or a watched local mold file - Toolbar: override input/output format, pass mold args, toggle live, refresh registry cache
- Output: copy to clipboard or save to disk; errors show as a red banner while the last valid output stays visible
Triggers:
- Editor or explorer context menu → Fimod → Open Playground
- Registry Molds / Workspace Molds tree → right-click a mold → Open Playground
- Command palette →
Fimod: Open Playground
Playground is read-only — use Shape to apply a transformation back to a file.
Displays fimod X.Y.Z in the status bar when the binary is detected, so you always know which version is active.
The extension is not yet on the VS Code Marketplace. Install the VSIX manually from GitHub Releases:
- Download
fimod-vscode-X.Y.Z.vsixfrom the latest stable release. Use a-beta.Nor-rc.NVSIX only when testing a prerelease. - In VS Code, open the Command Palette → Extensions: Install from VSIX... → select the downloaded file.
Or via the CLI:
code --install-extension fimod-vscode-X.Y.Z.vsix- fimod CLI
0.7.0or newer installed and available in yourPATH(or configured viafimod.binaryPath)
| Action | Shortcut |
|---|---|
| Shape (editor) | Ctrl+Shift+M (Cmd+Shift+M on macOS) |
| Shape (explorer) | Right-click → Fimod → Shape |
| Shape (command palette) | Fimod: Shape |
| Playground | Fimod: Open Playground or right-click → Fimod → Open Playground |
| Setting | Default | Description |
|---|---|---|
fimod.binaryPath |
"" |
Path to the fimod binary. If empty, searches PATH. |
fimod.shape.preview |
true |
Show diff preview before applying transformations. |
fimod.shape.debug |
false |
Pass --debug to fimod shape transformations. |
fimod.shape.formatDetection |
"auto" |
Format detection mode: auto or manual. |
fimod.shape.historySize |
3 |
Number of recent choices shown at the top of the quick pick (0–10). |
fimod.registry.autoRefresh |
true |
Automatically refresh registry tree on activation. |
fimod.mold.scanPaths |
[] |
Additional directories to scan for workspace molds. |
fimod.mold.testsDirPattern |
${workspaceFolder}/tests-molds/${moldName} |
Pattern for the directory used by fimod mold test. Placeholders: ${workspaceFolder}, ${moldDir}, ${moldName}. Per-mold overrides take precedence. |
JSON, YAML, TOML, CSV, NDJSON, plain text — anything fimod supports. Format is auto-detected from the file extension or content.
Apache-2.0
