| 1 |
# IPC |
| 2 |
|
| 3 |
tarmac exposes a full IPC (inter-process communication) interface over a Unix domain socket. External tools, scripts, and the `tarmacctl` CLI can send commands and receive events. |
| 4 |
|
| 5 |
## Overview |
| 6 |
|
| 7 |
The IPC system provides: |
| 8 |
|
| 9 |
- **Command execution** — focus, swap, resize, workspace management, etc. |
| 10 |
- **State queries** — get windows, workspaces, monitors, layout trees |
| 11 |
- **Event subscription** — real-time stream of workspace changes, window focus, etc. |
| 12 |
|
| 13 |
## Sections |
| 14 |
|
| 15 |
- [Socket & Protocol](/docs/ipc/socket-protocol) — socket location, JSON wire format, permissions |
| 16 |
- [tarmacctl](/docs/ipc/tarmacctl) — the CLI control tool |
| 17 |
- [Commands](/docs/ipc/commands) — complete command reference |
| 18 |
- [Events & Subscribe](/docs/ipc/events-subscribe) — subscribing to real-time events |