Skip to main content

itermspace

Launch iTerm2 workspaces from YAML configuration files.

Features

  • Define terminal workspaces with multiple tabs
  • Configure split panes in flexible grid layouts (vertical/horizontal)
  • Set working directories and startup commands per pane
  • Launch multiple config files at once
  • Validate configurations before launching
  • Dry-run mode to preview workspace setup

Requirements

  • macOS (iTerm2 is macOS-only)
  • iTerm2 with Python API enabled
  • Python 3.13+

Enable iTerm2 Python API

  1. Open iTerm2
  2. Go to Preferences > General > Magic
  3. Check Enable Python API
  4. Accept the security warning

Installation

# Using uv (recommended)
uv tool install itermspace

# Or using pip
pip install itermspace

Usage

# Launch a workspace
itermspace workspace.yaml

# Launch multiple workspaces at once
itermspace backend.yaml frontend.yaml database.yaml

# Validate configuration(s)
itermspace --validate workspace.yaml
itermspace --validate *.yaml

# Preview without launching (dry-run)
itermspace --dry-run workspace.yaml

# Short alias
its workspace.yaml

Configuration

Create a YAML file defining your workspace:

version: "1"
name: "My Workspace"

tabs:
  - name: "Main"
    working_directory: "~/projects"
    layout:
      split: "vertical"
      panes:
        - name: "Editor"
        - name: "Terminal"
          commands:
            - "echo 'Ready!'"

See the examples/ directory for more configuration samples.

Configuration Reference

Root Level

Field Type Required Description
version string No Schema version (default: "1")
name string No Workspace name
tabs array Yes List of tab configurations

Tab Configuration

Field Type Required Description
name string Yes Tab title in iTerm2
working_directory string No Default directory for panes
layout object No Pane layout (omit for single pane)
commands array No Commands for single-pane tabs

Layout Configuration

Field Type Required Description
split string No "vertical" or "horizontal" (default: "vertical")
panes array Yes List of pane or nested layout objects

Pane Configuration

Field Type Required Description
name string No Pane identifier
working_directory string No Working directory
commands array No Commands to execute
delay float No Delay before running commands (seconds)

Development

# Clone the repository
git clone https://github.com/midodimori/itermspace
cd itermspace

# Install dependencies
make install

# Run linting
make lint

# Run type checking
make typecheck

# Run tests
make test

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

itermspace-0.0.1.tar.gz (54.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

itermspace-0.0.1-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file itermspace-0.0.1.tar.gz.

File metadata

  • Download URL: itermspace-0.0.1.tar.gz
  • Upload date:
  • Size: 54.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for itermspace-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1111fd34ce39c35c4797c22f395c0a8fb2a0a429193b148c3ad94c073e42f302
MD5 3b0fb5ae25a72babc3231f5fcead5e0c
BLAKE2b-256 2f1c84a713767dd3af9f2279953f835121a6f48a690530526688b0ce88443c0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for itermspace-0.0.1.tar.gz:

Publisher: publish-pypi.yml on midodimori/itermspace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file itermspace-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: itermspace-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for itermspace-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aaf3f8737c969df92146e36edc90ac00a14ad6136af98060bd3c99c3372995a9
MD5 59742cbc090f3484d2946d5f4f9d8985
BLAKE2b-256 4847c8eeed13972874acf14d915f52081098d182b340d6ef94178995a3541fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for itermspace-0.0.1-py3-none-any.whl:

Publisher: publish-pypi.yml on midodimori/itermspace

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page