Termify
Termify creates polished, predefined VS Code terminals from a native picker. It gives teams a consistent way to open task-oriented terminals for Git, package managers, frameworks, runtimes, cloud tools, databases, containers, and infrastructure CLIs.
Features
- Native Quick Pick flow for creating predefined terminals.
- Built-in presets for Git, GitHub, npm, pnpm, yarn, bun, Flutter, React, Next.js, Angular, Vue, Node, Python, Java, Rust, Go, Docker, Kubernetes, Terraform, AWS, Azure, Firebase, MongoDB, PostgreSQL, and Redis.
- Terminal names, icons, colors, working directories, environment variables, and startup commands are modeled as validated presets.
- Product icon contributions use a generated Devicon-derived WOFF font with Codicon fallbacks.
- Workspace Trust aware startup command policy.
- Desktop and web extension entrypoints with static web compatibility validation.
Commands
| Command |
Purpose |
New Terminal |
Open the native preset picker and create a terminal from the selected preset. |
New Terminal From Preset |
Create a terminal directly from a preset id. |
Repeat Last Terminal |
Recreate the most recently launched Termify preset. |
Manage Favorites |
Add, remove, or reorder in-session favorite terminal presets. |
Import Presets |
Select and validate a Termify preset collection JSON file. |
Export Presets |
Export the current registry snapshot to a Termify preset collection JSON file. |
Open Settings |
Open VS Code Settings filtered to Termify. |
Validate Presets |
Validate the active preset registry and report category and preset counts. |
Settings
| Setting |
Default |
Description |
termify.enabled |
true |
Enables Termify command handling and preset loading. |
termify.iconMode |
auto |
Controls icon resolution: auto, devicon, codicon, or none. |
termify.startupCommandPolicy |
confirmWorkspace |
Controls when startup commands may run. |
termify.defaultTerminalLocation |
panel |
Creates terminals in the panel or editor area by default. |
termify.showRecent |
true |
Shows recently used presets in the picker. |
termify.workspacePresets.enabled |
true |
Allows workspace and project preset loading when trust policy permits it. |
termify.projectPresetFiles |
[ ".vscode/termify.presets.json" ] |
Project preset files Termify may inspect. |
Architecture
Termify follows a documentation-first architecture. The docs/ directory is the source of truth for VS Code API limitations, terminal behavior, product icon constraints, configuration, data modeling, security, performance, testing, and release decisions.
The extension intentionally uses native VS Code terminals rather than pseudoterminals for real CLI sessions. Startup commands are rendered through validated preset models, environment variables are checked before terminal creation, and Workspace Trust determines whether command execution is allowed, denied, or confirmation-gated.
Development
npm install
npm run build
npm run validate
npm run test:extension
npm run package
The generated icon font is reproducible:
npm run icons:generate
npm run icons:validate
Web Compatibility
npm run test:web performs deterministic web bundle validation. npm run test:web:browser runs an optional @vscode/test-web smoke test when the downloaded VS Code web host is available in the local environment.
Notices
Termify includes a generated icon font derived from selected Devicon SVG assets. See NOTICE.md for third-party attribution.
Author
Pranav Raut
GitHub: @rautpranav13
License
Termify is licensed under the MIT License.
| |