ace-tmux 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.ace-defaults/tmux/config.yml +11 -0
- data/.ace-defaults/tmux/panes/claude.yml +4 -0
- data/.ace-defaults/tmux/panes/nvim.yml +4 -0
- data/.ace-defaults/tmux/panes/work-on-task-cc.yml +4 -0
- data/.ace-defaults/tmux/panes/work-on-task-status.yml +4 -0
- data/.ace-defaults/tmux/sessions/default.yml +5 -0
- data/.ace-defaults/tmux/windows/cc-ipad.yml +10 -0
- data/.ace-defaults/tmux/windows/cc.yml +14 -0
- data/.ace-defaults/tmux/windows/work-on-task.yml +16 -0
- data/CHANGELOG.md +240 -0
- data/LICENSE +21 -0
- data/README.md +40 -0
- data/Rakefile +12 -0
- data/docs/demo/ace-tmux-getting-started.gif +0 -0
- data/docs/demo/ace-tmux-getting-started.tape.yml +30 -0
- data/docs/getting-started.md +86 -0
- data/docs/handbook.md +31 -0
- data/docs/usage.md +197 -0
- data/exe/ace-tmux +17 -0
- data/lib/ace/tmux/atoms/layout_string_builder.rb +172 -0
- data/lib/ace/tmux/atoms/preset_resolver.rb +127 -0
- data/lib/ace/tmux/atoms/tmux_command_builder.rb +203 -0
- data/lib/ace/tmux/cli/commands/list.rb +85 -0
- data/lib/ace/tmux/cli/commands/start.rb +82 -0
- data/lib/ace/tmux/cli/commands/window.rb +75 -0
- data/lib/ace/tmux/cli.rb +64 -0
- data/lib/ace/tmux/models/layout_node.rb +53 -0
- data/lib/ace/tmux/models/pane.rb +37 -0
- data/lib/ace/tmux/models/session.rb +64 -0
- data/lib/ace/tmux/models/window.rb +50 -0
- data/lib/ace/tmux/molecules/config_loader.rb +46 -0
- data/lib/ace/tmux/molecules/preset_loader.rb +73 -0
- data/lib/ace/tmux/molecules/session_builder.rb +151 -0
- data/lib/ace/tmux/molecules/tmux_executor.rb +74 -0
- data/lib/ace/tmux/organisms/session_manager.rb +295 -0
- data/lib/ace/tmux/organisms/window_manager.rb +221 -0
- data/lib/ace/tmux/version.rb +7 -0
- data/lib/ace/tmux.rb +101 -0
- metadata +225 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 6edbcf3bf58e90e79182dc805d7f8a0a05ce2d0700b8073f9b62a2d1ae9c000f
|
|
4
|
+
data.tar.gz: 5c2b63bcf1ca460962d2699feded26f4218175d36ae60bfa557e0f23cf453a47
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 0b243e73b26ee915c578f6d9759100455d00a9e266b935a31f859b7c6eaa01d22094f198614f6542bf0f40d5567e535f9b3d25c5bfa776e2c6a8dba9426ee25b
|
|
7
|
+
data.tar.gz: 64ce6b86d35c2c9196b4ba047dd32cfb188bfb8279f7bb9d34eeb8b5658f8b14164e5c49715ba03a79ad88fef287a5b1cf5fddcf61d89fc5b61148d708d02fb7
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# ace-tmux default configuration
|
|
2
|
+
# Override in ~/.ace/tmux/config.yml or .ace/tmux/config.yml
|
|
3
|
+
|
|
4
|
+
# Path to tmux binary (default: tmux from PATH)
|
|
5
|
+
tmux_binary: tmux
|
|
6
|
+
|
|
7
|
+
# Default presets when no arguments are provided
|
|
8
|
+
# ace-tmux (no args) uses session default outside tmux, window default inside tmux
|
|
9
|
+
defaults:
|
|
10
|
+
session: default
|
|
11
|
+
window: cc
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Claude Code workspace: claude (left) | nvim + git status (center) | taskflow (right)
|
|
2
|
+
direction: horizontal
|
|
3
|
+
panes:
|
|
4
|
+
- preset: claude
|
|
5
|
+
size: "34%"
|
|
6
|
+
- direction: vertical
|
|
7
|
+
size: "32%"
|
|
8
|
+
panes:
|
|
9
|
+
- preset: nvim
|
|
10
|
+
- commands:
|
|
11
|
+
- ace-git status
|
|
12
|
+
- commands:
|
|
13
|
+
- ace-task list
|
|
14
|
+
size: "34%"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Work-on task orchestration workspace:
|
|
2
|
+
# - Left: cc running /as-assign-drive
|
|
3
|
+
# - Middle: nvim on active assignment cache (via .ace-local/assign/.latest) + shell status
|
|
4
|
+
# - Right: status from task and assignment
|
|
5
|
+
direction: horizontal
|
|
6
|
+
panes:
|
|
7
|
+
- preset: work-on-task-cc
|
|
8
|
+
size: "34%"
|
|
9
|
+
- direction: vertical
|
|
10
|
+
size: "32%"
|
|
11
|
+
panes:
|
|
12
|
+
- preset: nvim
|
|
13
|
+
- commands:
|
|
14
|
+
- ace-git status
|
|
15
|
+
- preset: work-on-task-status
|
|
16
|
+
size: "34%"
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.11.0] - 2026-03-24
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Removed demo GIF from README to streamline the landing page.
|
|
14
|
+
|
|
15
|
+
## [0.10.2] - 2026-03-23
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Refreshed package README layout, quick-link navigation, and section flow to align with the current package pattern.
|
|
19
|
+
|
|
20
|
+
## [0.10.1] - 2026-03-22
|
|
21
|
+
|
|
22
|
+
### Changed
|
|
23
|
+
- Renamed overseer work-on pane/window presets from `work-on-tasks*` to `work-on-task*` for canonical preset naming consistency.
|
|
24
|
+
|
|
25
|
+
## [0.10.0] - 2026-03-22
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
- Added `work-on-tasks` pane and window presets for overseer-driven work-on workflows.
|
|
29
|
+
|
|
30
|
+
## [0.9.2] - 2026-03-22
|
|
31
|
+
|
|
32
|
+
### Fixed
|
|
33
|
+
- Restore YAML composition examples for pane and window preset reuse in usage docs.
|
|
34
|
+
|
|
35
|
+
## [0.9.1] - 2026-03-22
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
- Include `docs/**/*` in gemspec so documentation ships with the gem.
|
|
39
|
+
- Fix VHS tape output path to `docs/demo/` instead of `.ace-local/demo/`.
|
|
40
|
+
- Clarify `on_project_exit` as reserved/not-yet-implemented in usage docs.
|
|
41
|
+
|
|
42
|
+
## [0.9.0] - 2026-03-22
|
|
43
|
+
|
|
44
|
+
### Added
|
|
45
|
+
- Reworked package documentation with a new landing-page README, tutorial getting-started guide, full usage reference, handbook catalog, demo assets, and aligned gem metadata messaging.
|
|
46
|
+
|
|
47
|
+
## [0.8.0] - 2026-03-21
|
|
48
|
+
|
|
49
|
+
### Changed
|
|
50
|
+
- Expanded `TS-TMUX-001` E2E lifecycle coverage with a new window-management goal and tightened artifact-evidence contracts for preset discovery and session start flows.
|
|
51
|
+
|
|
52
|
+
## [0.7.1] - 2026-03-18
|
|
53
|
+
|
|
54
|
+
### Changed
|
|
55
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## [0.7.0] - 2026-03-18
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
## [0.6.3] - 2026-03-17
|
|
65
|
+
|
|
66
|
+
### Fixed
|
|
67
|
+
- Updated CLI help-output assertions to match `ace-support-cli` output casing (`COMMANDS`/`EXAMPLES`).
|
|
68
|
+
|
|
69
|
+
## [0.6.2] - 2026-03-15
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
73
|
+
|
|
74
|
+
## [0.6.1] - 2026-02-23
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- Centralized error class hierarchy: PresetNotFoundError and NotInTmuxError now inherit from Ace::Tmux::Error
|
|
78
|
+
|
|
79
|
+
### Technical
|
|
80
|
+
- Updated internal dependency version constraints to current releases
|
|
81
|
+
|
|
82
|
+
## [0.6.0] - 2026-02-22
|
|
83
|
+
|
|
84
|
+
### Changed
|
|
85
|
+
|
|
86
|
+
- **Breaking**: Removed DWIM context-aware default routing
|
|
87
|
+
- `ace-tmux` (no args) now shows help instead of routing to `start`/`window` based on TMUX env
|
|
88
|
+
- Users must now use explicit commands: `ace-tmux start`, `ace-tmux window`, `ace-tmux list`
|
|
89
|
+
- Unknown first arguments are no longer prepended with default command
|
|
90
|
+
- Migrated to standard help pattern (ADR-023)
|
|
91
|
+
- Added `HELP_EXAMPLES` constant with usage examples
|
|
92
|
+
- Registered `HelpCommand` for `help`, `--help`, `-h`
|
|
93
|
+
- Updated `REGISTERED_COMMANDS` to include descriptions
|
|
94
|
+
|
|
95
|
+
### Technical
|
|
96
|
+
|
|
97
|
+
- Updated CLI tests to test standard help pattern instead of DWIM routing
|
|
98
|
+
|
|
99
|
+
## [0.5.5] - 2026-02-20
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
- `WindowManager#detect_current_session` now checks `ACE_TMUX_SESSION` env var first, enabling E2E test isolation without requiring an active tmux session
|
|
103
|
+
|
|
104
|
+
## [0.5.4] - 2026-02-19
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
|
|
108
|
+
- Fix "index N in use" error when creating tmux windows in sessions with `base-index` set
|
|
109
|
+
|
|
110
|
+
## [0.5.3] - 2026-02-19
|
|
111
|
+
|
|
112
|
+
### Fixed
|
|
113
|
+
|
|
114
|
+
- Include stderr details in "Failed to create window" error message for better debugging
|
|
115
|
+
|
|
116
|
+
## [0.5.2] - 2026-02-14
|
|
117
|
+
|
|
118
|
+
### Fixed
|
|
119
|
+
|
|
120
|
+
- First window name now always derives from the effective working directory (`--root` override > preset `root:` > CWD), matching the existing behavior of `ace-tmux window --root`
|
|
121
|
+
|
|
122
|
+
## [0.5.1] - 2026-02-14
|
|
123
|
+
|
|
124
|
+
### Fixed
|
|
125
|
+
|
|
126
|
+
- Bundler/Ruby environment variables (`BUNDLE_GEMFILE`, `BUNDLE_BIN_PATH`, `RUBYOPT`, `RUBYLIB`) no longer leak into tmux sessions and spawned processes
|
|
127
|
+
- `bin/ace-tmux` cleans env vars from its own process after Bundler setup
|
|
128
|
+
- `SessionManager` unsets env vars from the tmux session environment via `set-environment -u`
|
|
129
|
+
- New `TmuxCommandBuilder.set_environment` atom for `tmux set-environment` commands
|
|
130
|
+
|
|
131
|
+
## [0.5.0] - 2026-02-14
|
|
132
|
+
|
|
133
|
+
### Changed
|
|
134
|
+
|
|
135
|
+
- **Breaking**: Gem renamed from `ace-support-tmux` to `ace-tmux` (task 266)
|
|
136
|
+
- Namespace changed from `Ace::Support::Tmux` to `Ace::Tmux`
|
|
137
|
+
- Require path changed from `ace/support/tmux` to `ace/tmux`
|
|
138
|
+
- Binary name (`ace-tmux`) and config path (`.ace/tmux/`) unchanged
|
|
139
|
+
- No backward compatibility shims provided (per ADR-024)
|
|
140
|
+
|
|
141
|
+
## [0.4.1] - 2026-02-14
|
|
142
|
+
|
|
143
|
+
### Fixed
|
|
144
|
+
|
|
145
|
+
- `ace-tmux --root /path` inside tmux now adds a window instead of erroring with "sessions should be nested" — unknown-arg routing is now context-aware
|
|
146
|
+
|
|
147
|
+
## [0.4.0] - 2026-02-14
|
|
148
|
+
|
|
149
|
+
### Added
|
|
150
|
+
|
|
151
|
+
- Context-aware default presets — `ace-tmux` with no arguments starts default session (outside tmux) or adds default window (inside tmux)
|
|
152
|
+
- `defaults` config section in `config.yml` with `session` and `window` default preset names
|
|
153
|
+
- `--root`/`-r` option on `start` command for working directory override (parity with `window` command)
|
|
154
|
+
- `inside_tmux?` detection method on CLI for context-aware routing
|
|
155
|
+
|
|
156
|
+
### Changed
|
|
157
|
+
|
|
158
|
+
- `preset` argument is now optional on both `start` and `window` commands — falls back to configured defaults
|
|
159
|
+
|
|
160
|
+
## [0.3.4] - 2026-02-13
|
|
161
|
+
|
|
162
|
+
### Fixed
|
|
163
|
+
|
|
164
|
+
- Session creation failing with `base-index 1` tmux config by using window IDs instead of index-based targeting
|
|
165
|
+
|
|
166
|
+
## [0.3.3] - 2026-02-13
|
|
167
|
+
|
|
168
|
+
### Fixed
|
|
169
|
+
|
|
170
|
+
- Window targeting uses unique window ID (`@42` format) instead of name-based resolution, eliminating "can't find window" errors when duplicate names exist
|
|
171
|
+
- Window name derived from `--root` basename instead of preset's `name` field — `ace-tmux window cc --root /path/to/project` names the window `project`
|
|
172
|
+
|
|
173
|
+
### Added
|
|
174
|
+
|
|
175
|
+
- `--name`/`-n` flag on `ace-tmux window` for explicit window name override (priority: `--name` > `--root` basename > preset argument)
|
|
176
|
+
|
|
177
|
+
### Changed
|
|
178
|
+
|
|
179
|
+
- Removed `name: cc` from cc.yml window preset — presets define layout, not window names
|
|
180
|
+
|
|
181
|
+
## [0.3.2] - 2026-02-13
|
|
182
|
+
|
|
183
|
+
### Fixed
|
|
184
|
+
|
|
185
|
+
- Pane startup race condition — `send-keys` commands now execute after `select-layout`, preventing resize artifacts in apps like nvim/LazyVim
|
|
186
|
+
|
|
187
|
+
### Changed
|
|
188
|
+
|
|
189
|
+
- Restored per-pane `sleep 0.15` in claude and nvim pane presets — shell-side sleep absorbs async resize signals that Ruby-side delay cannot
|
|
190
|
+
|
|
191
|
+
## [0.3.1] - 2026-02-13
|
|
192
|
+
|
|
193
|
+
### Fixed
|
|
194
|
+
|
|
195
|
+
- Per-leaf pane `root` overrides now apply in nested layouts — previously all nested panes used the window/session root
|
|
196
|
+
- `LayoutStringBuilder` pane ID assignment falls back to sequential index when `pane_ids` array is shorter than expected
|
|
197
|
+
|
|
198
|
+
## [0.3.0] - 2026-02-12
|
|
199
|
+
|
|
200
|
+
### Added
|
|
201
|
+
|
|
202
|
+
- Nested pane layouts with arbitrary tree structure via `direction` key in YAML presets
|
|
203
|
+
- `LayoutNode` model — tree node (leaf or container) for nested layout representation
|
|
204
|
+
- `LayoutStringBuilder` atom — pure function that generates tmux custom layout strings with CRC16 checksum from a `LayoutNode` tree
|
|
205
|
+
- `list_panes` and `display_message_target` commands in `TmuxCommandBuilder`
|
|
206
|
+
- `layout_tree` attribute and `nested_layout?` predicate on `Window` model
|
|
207
|
+
- Recursive preset resolution for nested containers in `PresetResolver`
|
|
208
|
+
- Nested pane setup flow in `SessionManager` and `WindowManager` — flat splits → list-panes → layout string → select-layout
|
|
209
|
+
|
|
210
|
+
## [0.2.0] - 2026-02-12
|
|
211
|
+
|
|
212
|
+
### Added
|
|
213
|
+
|
|
214
|
+
- Generic `options` hash on Window and Pane models — pass-through for any tmux option via `set-window-option` and `set-option -p`
|
|
215
|
+
- `--root`/`-r` flag on `ace-tmux window` command to set working directory for the new window and all its panes
|
|
216
|
+
- `set_window_option` and `set_pane_option` commands in TmuxCommandBuilder
|
|
217
|
+
|
|
218
|
+
### Changed
|
|
219
|
+
|
|
220
|
+
- Default session preset: 3-pane layout (claude left 40%, shell right-top, nvim right-bottom) with `main-vertical` layout and `main-pane-width` option
|
|
221
|
+
- Code-editor window preset: 3 equal vertical panes (claude | shell | nvim) with `even-horizontal` layout
|
|
222
|
+
|
|
223
|
+
## [0.1.0] - 2026-02-12
|
|
224
|
+
|
|
225
|
+
### Added
|
|
226
|
+
|
|
227
|
+
- Initial release of ace-support-tmux
|
|
228
|
+
- Composable tmux session management via YAML presets
|
|
229
|
+
- Deep-merge composition at session, window, and pane levels
|
|
230
|
+
- `ace-tmux start <session-preset>` — Create tmux session from YAML preset
|
|
231
|
+
- `ace-tmux window <window-preset>` — Add window to existing session from preset
|
|
232
|
+
- `ace-tmux list [sessions|windows|panes]` — List available presets
|
|
233
|
+
- ACE config cascade integration (project > user > gem defaults)
|
|
234
|
+
- tmuxinator-compatible YAML keys
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
## [0.5.6] - 2026-02-22
|
|
238
|
+
|
|
239
|
+
### Fixed
|
|
240
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Michal Czyz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1> ACE - TMUX </h1>
|
|
3
|
+
|
|
4
|
+
Composable tmux sessions from YAML presets, with window injection into active sessions.
|
|
5
|
+
|
|
6
|
+
<img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
7
|
+
<br><br>
|
|
8
|
+
|
|
9
|
+
<a href="https://rubygems.org/gems/ace-tmux"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-tmux.svg" /></a>
|
|
10
|
+
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
|
|
11
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
> Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
|
|
16
|
+
|
|
17
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
|
|
18
|
+
|
|
19
|
+
`ace-tmux` helps you standardize terminal workspaces with preset-driven sessions, reusable windows, and nested pane layouts. You can spin up a full workspace from a session preset or inject a focused window into an already-running tmux session, with config cascade across project, user, and gem defaults.
|
|
20
|
+
|
|
21
|
+
## How It Works
|
|
22
|
+
|
|
23
|
+
1. Define session and window layouts in YAML presets stored in `.ace/tmux/` (project), `~/.ace/tmux/` (user), or gem defaults.
|
|
24
|
+
2. Run `ace-tmux start [PRESET]` to create a full session or `ace-tmux window [PRESET]` to inject a window into the current session.
|
|
25
|
+
3. Presets are deep-merged through the config cascade, so project-level overrides layer cleanly on top of shared defaults.
|
|
26
|
+
|
|
27
|
+
## Use Cases
|
|
28
|
+
|
|
29
|
+
**Start or attach to a preset-backed session** - run `ace-tmux start [PRESET]` to create a session from YAML presets, or attach to an existing session with the same name, integrating panes for [ace-task](../ace-task) status, [ace-git](../ace-git) info, and editor windows.
|
|
30
|
+
|
|
31
|
+
**Inject windows into running sessions** - run `ace-tmux window [PRESET]` to add a new window from presets without recreating the current session, useful for spinning up focused tool or test panes on the fly.
|
|
32
|
+
|
|
33
|
+
**Compose nested pane layouts in YAML** - use `direction` and nested pane containers to model custom split trees beyond tmux built-in layouts, keeping workspace structure version-controlled alongside your project.
|
|
34
|
+
|
|
35
|
+
**Reuse presets through config cascade** - load project presets from `.ace/tmux/`, personal presets from `~/.ace/tmux/`, and gem defaults via `.ace-defaults/tmux/` with deep-merge behavior so teams share a baseline while individuals customize.
|
|
36
|
+
|
|
37
|
+
**Orchestrate task-focused workspaces** - pair with [ace-overseer](../ace-overseer) and [ace-assign](../ace-assign) for assignment-driven worktree and tmux orchestration that spins up isolated workspaces per task.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
|
data/Rakefile
ADDED
|
Binary file
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Showcase ace-tmux preset discovery, session start, and window management
|
|
3
|
+
tags:
|
|
4
|
+
- ace-tmux
|
|
5
|
+
- docs
|
|
6
|
+
- getting-started
|
|
7
|
+
settings:
|
|
8
|
+
font_size: 16
|
|
9
|
+
width: 960
|
|
10
|
+
height: 540
|
|
11
|
+
format: gif
|
|
12
|
+
scenes:
|
|
13
|
+
- name: Discover available presets (sessions, windows, panes)
|
|
14
|
+
commands:
|
|
15
|
+
- type: ace-tmux list
|
|
16
|
+
sleep: 4s
|
|
17
|
+
- name: Start a session from a preset without attaching
|
|
18
|
+
commands:
|
|
19
|
+
- type: ace-tmux start default --detach
|
|
20
|
+
sleep: 3s
|
|
21
|
+
- name: Add a window to the running session
|
|
22
|
+
commands:
|
|
23
|
+
- type: ace-tmux window cc --session default
|
|
24
|
+
sleep: 3s
|
|
25
|
+
- name: Verify session is running with windows
|
|
26
|
+
commands:
|
|
27
|
+
- type: tmux list-windows -t default
|
|
28
|
+
sleep: 4s
|
|
29
|
+
teardown:
|
|
30
|
+
- cleanup
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: user
|
|
3
|
+
title: ace-tmux Getting Started
|
|
4
|
+
purpose: Tutorial for creating sessions and adding windows with ace-tmux.
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-22
|
|
7
|
+
last-checked: 2026-03-22
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Getting Started with ace-tmux
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- `tmux` installed and available on PATH
|
|
15
|
+
- ACE toolchain available in your repository shell
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
Install from RubyGems: `gem install ace-tmux`.
|
|
20
|
+
|
|
21
|
+
Verify command availability: `ace-tmux --help`.
|
|
22
|
+
|
|
23
|
+
## Start Your First Session
|
|
24
|
+
|
|
25
|
+
Run: `ace-tmux start`.
|
|
26
|
+
|
|
27
|
+
`ace-tmux` resolves the default session preset from `defaults.session` in config.
|
|
28
|
+
|
|
29
|
+
## Add a Window to a Running Session
|
|
30
|
+
|
|
31
|
+
From inside tmux, run: `ace-tmux window`.
|
|
32
|
+
|
|
33
|
+
`ace-tmux` resolves the default window preset from `defaults.window` in config.
|
|
34
|
+
|
|
35
|
+
## Create a Custom Window Preset
|
|
36
|
+
|
|
37
|
+
Create `.ace/tmux/windows/cc.yml`:
|
|
38
|
+
|
|
39
|
+
```yaml
|
|
40
|
+
direction: horizontal
|
|
41
|
+
panes:
|
|
42
|
+
- preset: claude
|
|
43
|
+
size: "35%"
|
|
44
|
+
- direction: vertical
|
|
45
|
+
size: "30%"
|
|
46
|
+
panes:
|
|
47
|
+
- preset: nvim
|
|
48
|
+
- commands:
|
|
49
|
+
- ace-git status
|
|
50
|
+
- commands:
|
|
51
|
+
- ace-task list
|
|
52
|
+
size: "35%"
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Use it in a session or add it directly with `ace-tmux window cc`.
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
## Nested Layouts
|
|
60
|
+
|
|
61
|
+
`direction: horizontal` creates columns, `direction: vertical` creates rows, and children can be mixed recursively.
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
┌────────────┬──────────┬──────────────┐
|
|
66
|
+
│ │ nvim . │ │
|
|
67
|
+
│ claude │──────────│ task list │
|
|
68
|
+
│ 35% │ git stat │ 35% │
|
|
69
|
+
│ │ 30% │ │
|
|
70
|
+
└────────────┴──────────┴──────────────┘
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Common Commands
|
|
75
|
+
|
|
76
|
+
| Command | Purpose |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `ace-tmux start [PRESET]` | Start or attach to a session preset |
|
|
79
|
+
| `ace-tmux window [PRESET]` | Add a window preset to a running session |
|
|
80
|
+
| `ace-tmux list` | Show available session/window/pane presets |
|
|
81
|
+
|
|
82
|
+
## Next steps
|
|
83
|
+
|
|
84
|
+
- Define project-level presets in `.ace/tmux/`.
|
|
85
|
+
- Override personal defaults in `~/.ace/tmux/`.
|
|
86
|
+
- See [Usage Guide](usage.md) for full command and config reference.
|
data/docs/handbook.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: user
|
|
3
|
+
title: ace-tmux Handbook Reference
|
|
4
|
+
purpose: Catalog of package-owned agent skills and workflows in ace-tmux.
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-22
|
|
7
|
+
last-checked: 2026-03-22
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Handbook Reference
|
|
11
|
+
|
|
12
|
+
## Skills
|
|
13
|
+
|
|
14
|
+
No package-owned canonical skills are currently published under `ace-tmux/handbook/skills/`.
|
|
15
|
+
|
|
16
|
+
## Workflows
|
|
17
|
+
|
|
18
|
+
No package-owned workflow instructions are currently published under `ace-tmux/handbook/workflow-instructions/`.
|
|
19
|
+
|
|
20
|
+
## Guides
|
|
21
|
+
|
|
22
|
+
No package-owned guides are currently published under `ace-tmux/handbook/guides/`.
|
|
23
|
+
|
|
24
|
+
## Templates
|
|
25
|
+
|
|
26
|
+
No package-owned templates are currently published under `ace-tmux/handbook/templates/`.
|
|
27
|
+
|
|
28
|
+
## Related Documentation
|
|
29
|
+
|
|
30
|
+
- [Getting Started](getting-started.md)
|
|
31
|
+
- [Usage Guide](usage.md)
|