Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>pieceoterminalNew to Visual Studio Code? Get it now.
pieceoterminal

pieceoterminal

pcwt

|
2 installs
| (0) | Free
Automatically create and manage development terminals for multiple services with auto-discovery and configuration
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

piecoterminal

Automatically create and manage development terminals for multiple services with auto-discovery and flexible configuration.

Marketplace Link

Features

  • Auto-Discovery: Automatically finds services with go.mod, package.json, Cargo.toml, etc.
  • Flexible Configuration: Uses VS Code Settings for custom setup
  • Smart Grouping: Groups services by prefix and labels terminals with the group name
  • Health Status: Optional port checks with results in the status bar
  • Language Agnostic: Works with Go, Node.js, Python, Rust, and any language
  • Easy Management: Create all terminals with one command, stop all with another

Installation

Step 1: Build the extension

npm install
npm run compile

Step 2: Install as development extension

Create a symlink:

ln -sf "$(pwd)" ~/.vscode/extensions/pieceowater.terminal

Step 3: Reload VS Code

  • Press Cmd+Shift+P (or Ctrl+Shift+P on Linux/Windows)
  • Type "Developer: Reload Window"
  • Hit Enter

Usage

Create All Terminals

Method 1: Command Palette

  • Press Cmd+Shift+P (or Ctrl+Shift+P)
  • Type "pcwt: Create All Terminals"
  • Hit Enter

Method 2: Keyboard Shortcut

  • Press Ctrl+Shift+Alt+T

Stop All Services

Command Palette

  • Press Cmd+Shift+P
  • Type "pcwt: Stop All Services"
  • Hit Enter

Restart Services

Restart Current Service

  • Press Cmd+Shift+P
  • Type "pcwt: Restart Current Service"
  • Hit Enter

Restart All Services

  • Press Cmd+Shift+P
  • Type "pcwt: Restart All Services"
  • Hit Enter

Restart Service (Quick Pick)

  • Press Cmd+Shift+P
  • Type "pcwt: Restart Service (Quick Pick)"
  • Hit Enter

Configuration (Settings)

Auto-Discovery (No Configuration Needed)

By default, the extension scans your workspace root and auto-discovers services based on:

  • Presence of language-specific files (go.mod, package.json, Cargo.toml, requirements.txt)
  • Subdirectories (skips node_modules, dist, build, .git, etc.)

For each discovered service:

  • Go: go run cmd/server/main.go
  • Node.js: npm run dev
  • Rust: cargo run
  • Python: python -m main

Custom Configuration

Open Settings and search for pieceoterminal. You can also edit settings.json directly:

{
  "pieceoterminal.services": [
    {
      "name": "api-gateway",
      "path": "services/gateway",
      "command": "go run main.go",
      "group": "api",
      "port": 8080
    },
    {
      "name": "auth-service",
      "path": "services/auth",
      "command": "go run main.go",
      "group": "api",
      "port": 8081
    },
    {
      "name": "frontend",
      "path": "web",
      "command": "npm run dev",
      "group": "ui",
      "port": 3000
    }
  ],
  "pieceoterminal.groupPattern": "^([a-z]+)\\..*",
  "pieceoterminal.commandMapping": {
    "go.mod": "go run cmd/server/main.go",
    "package.json": "npm run dev",
    "Cargo.toml": "cargo run",
    "requirements.txt": "python -m main"
  },
  "pieceoterminal.discoveryDepth": 2,
  "pieceoterminal.exclude": ["**/*.proto", "tools/**"],
  "pieceoterminal.portMapping": {
    "api": 8080,
    "frontend": 3000
  },
  "pieceoterminal.healthCheck.enabled": false,
  "pieceoterminal.healthCheck.delayMs": 1500,
  "pieceoterminal.healthCheck.timeoutMs": 2000
}

#### Configuration Options

- **pieceoterminal.services** (optional): Explicitly list services. If omitted, auto-discovers from workspace root
  - `name`: Terminal display name
  - `path`: Path relative to workspace root
  - `command`: Shell command to run
  - `group`: Service group for labeling
  - `port`: Port for health checks

- **pieceoterminal.groupPattern** (optional): Regex to extract group from directory name
  - Default: prefix before last dot (e.g., "api.gateway" → "api")
  - Example: `"^([a-z]+)\\."` for "service-api" → "service"

- **pieceoterminal.commandMapping** (optional): File -> command mapping for auto-discovery
  - Checked in order; first matching file determines command

- **pieceoterminal.discoveryDepth** (optional): Recursion depth (1-2)

- **pieceoterminal.exclude** (optional): Glob patterns to exclude

- **pieceoterminal.portMapping** (optional): Map service name or group to port

- **pieceoterminal.healthCheck** (optional): Health check settings
  - Checked in order; first matching file determines command

## Example Projects

### Go Microservices

workspace/ ├── api/ │ └── go.mod ├── auth/ │ └── go.mod └── web/ └── package.json


Creates:
- Terminal "api" (group "api")
- Terminal "auth" (group "auth")
- Terminal "web" (group "web")

### Monorepo with Mixed Languages

workspace/ ├── .multiterminal.json ├── services/ │ ├── api/ │ │ └── go.mod │ ├── worker/ │ │ └── Cargo.toml │ └── dashboard/ │ └── package.json └── docs/ └── (no config files, skipped)


## Tips

- **Terminal Order**: Terminals created by group then name
- **Process Cleanup**: Stops all running service processes before creating terminals
- **Log Isolation**: Each service logs independently in its own terminal tab

## Development

### Rebuild after changes
```bash
npm run compile

Watch mode (auto-rebuild)

npm run watch

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft