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

Metadata

Release files for itermspace 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for itermspace 0.0.1
File Size Uploaded
itermspace-0.0.1.tar.gz 54.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for itermspace 0.0.1
File Interpreter ABI Platform
itermspace-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 66.0 kB

Release files / itermspace-0.0.1.tar.gz

Download URL itermspace-0.0.1.tar.gz
Size 54.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1111fd34ce39c35c4797c22f395c0a8fb2a0a429193b148c3ad94c073e42f302
BLAKE2b-256 checksum
How to use checksums
2f1c84a713767dd3af9f2279953f835121a6f48a690530526688b0ce88443c0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 25, 2026.

Transparency log

Release files / itermspace-0.0.1-py3-none-any.whl

Download URL itermspace-0.0.1-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aaf3f8737c969df92146e36edc90ac00a14ad6136af98060bd3c99c3372995a9
BLAKE2b-256 checksum
How to use checksums
4847c8eeed13972874acf14d915f52081098d182b340d6ef94178995a3541fef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page