Private Terminal is a VSCode extension that gives you full control over what appears in your integrated terminal. Hide or mask sensitive data (like environment variables, system info, network addresses, or custom patterns) with a per-terminal private mode and a beautiful, intuitive UI.
✨ Features
Private Mode: Toggle private mode for any terminal. Output is filtered in real time.
Pattern Management: Add custom regex patterns to hide or replace sensitive output.
Environment, System, Network, Disk Tabs: Instantly mask or replace any environment variable, system info, network address, or disk path.
Show/Hide & Replace: Mark any key or value as visible/hidden, and set custom replacement text.
One-click Control: Show All / Hide All buttons for every tab.
Modern UI: Responsive, accessible, and easy to use.
🚀 Installation
Download or clone this repository.
Run bun install or npm install to install dependencies.
Run bun run compile or npm run compile to build the extension.
Run vsce package to create a VSIX, or use the extension in development mode via VSCode's Extension Host.
Install the extension in VSCode.
🛡️ Usage
1. Open a Private Terminal
Click the Private Terminal button in the status bar (only visible when a terminal is open).
Toggle private mode for any terminal with the status bar button or the command palette.
2. Configure Patterns and Filters
Click the gear icon in the status bar or run Private Terminal: Configure Private Terminal.
The configuration panel has these tabs:
Patterns: Add custom regex patterns to hide or replace any output.
Environment: Hide or mask any environment variable (key or value).
System: Hide or mask system info (hostname, platform, etc.).
Network: Hide or mask network addresses.
Disk: Hide or mask disk paths (home, tmp, cwd).
3. Show/Hide and Replace
Use the green Visible or red Hidden buttons to control what is shown in the terminal.
Click the Edit icon to set custom replacement text for any key or value.
Use Show All or Hide All to quickly toggle visibility for all items in a tab.
4. How Filtering Works
When a pattern/key/value is marked Hidden, it is replaced in the terminal output with your chosen replacement (or left blank).
When marked Visible, it is shown as normal.
All changes are applied in real time to new Private Terminals.
🤝 Contributing
Pull requests and issues are welcome! Please open an issue for bugs or feature requests.