batipanel 0.4.28 → 0.4.29

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.
package/README.md CHANGED
@@ -1,12 +1,24 @@
1
- # batipanel
1
+ <p align="center">
2
+ <strong>batipanel</strong> — AI-Powered Terminal Workspace Manager
3
+ <br/>
4
+ <a href="https://batipanel.com">Website</a> · <a href="https://batipanel.com/download">Desktop App</a> · <a href="https://github.com/batiai/batipanel/issues">Issues</a>
5
+ </p>
2
6
 
3
- [![CI](https://github.com/batiai/batipanel/actions/workflows/ci.yml/badge.svg)](https://github.com/batiai/batipanel/actions)
4
- [![npm](https://img.shields.io/npm/v/batipanel)](https://www.npmjs.com/package/batipanel)
5
- [![Latest Release](https://img.shields.io/github/v/release/batiai/batipanel)](https://github.com/batiai/batipanel/releases)
6
- [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
7
- [![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20WSL-lightgrey)]()
7
+ <p align="center">
8
+ <a href="https://batipanel.com"><img src="https://img.shields.io/badge/🌐_batipanel.com-Visit_Website-blue?style=for-the-badge" alt="batipanel.com"/></a>
9
+ </p>
8
10
 
9
- **AI-powered terminal workspace manager.** One command to launch a fully configured, beautifully themed multi-panel development environment.
11
+ <p align="center">
12
+ <a href="https://github.com/batiai/batipanel/actions"><img src="https://github.com/batiai/batipanel/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
13
+ <a href="https://www.npmjs.com/package/batipanel"><img src="https://img.shields.io/npm/v/batipanel" alt="npm"/></a>
14
+ <a href="https://github.com/batiai/batipanel/releases"><img src="https://img.shields.io/github/v/release/batiai/batipanel" alt="Latest Release"/></a>
15
+ <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT"/></a>
16
+ <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20WSL-lightgrey" alt="Platform"/>
17
+ </p>
18
+
19
+ ---
20
+
21
+ One command to launch a fully configured, beautifully themed multi-panel development environment with **Claude Code**, **Git UI**, **system monitor**, **file browser**, and more.
10
22
 
11
23
  ```
12
24
  ┌────────────────────────────────┬──────────────┐
@@ -21,108 +33,15 @@
21
33
  └───────────┴────────────────────┴──────────────┘
22
34
  ```
23
35
 
24
- > **Looking for a GUI?** [batipanel Desktop](https://batipanel.com/download) is available for macOS and Windows — same multi-panel workspace with a native app experience.
25
-
26
- ---
27
-
28
- ## Why batipanel?
29
-
30
- AI 시대의 개발 환경은 달라져야 합니다. Claude Code 같은 AI 어시스턴트, Git UI, 시스템 모니터, 파일 브라우저를 **매번 하나씩 열고 배치하는 건 비효율적**입니다. batipanel은 이 모든 것을 **명령어 한 줄**로 해결합니다.
31
-
32
- ### 1. AI-First Multi-Panel Workspace
33
-
34
- > AI 시대에 최적화된 개발환경을 명령어 한 줄로 구축
35
-
36
- #### 1-1. AI Interface (Claude Code + Remote Control)
37
-
38
- - **Claude Code** 패널이 워크스페이스의 중심 — 55% 이상의 화면을 차지하는 넓은 AI 작업 공간
39
- - **Remote Control** 패널로 별도 터미널에서 Claude에 명령 전달 (다른 작업 중에도 AI 제어 가능)
40
- - **Dual-Claude** 레이아웃으로 두 개의 Claude 인스턴스를 동시에 운영 (멀티 에이전트)
41
-
42
- #### 1-2. Multi-Panel Development Tools
43
-
44
- - **Git UI** (lazygit) — 시각적 Git 관리, 커밋/브랜치/머지를 한눈에
45
- - **System Monitor** (btop) — CPU, 메모리, 네트워크 실시간 모니터링
46
- - **File Browser** (yazi) — 트리 구조 파일 탐색, Nerd Font 아이콘 지원
47
- - **Terminal** — 범용 쉘, 빌드/테스트 명령 실행
48
- - **Logs** — `tail -f`, `npm run dev` 등 실시간 로그 모니터링
49
-
50
- #### 1-3. Smart Layout System
51
-
52
- 화면 크기와 워크플로우에 맞는 **8가지 레이아웃** 제공:
53
-
54
- | Layout | Panels | Best For |
55
- |--------|--------|----------|
56
- | `7panel` (default) | 7 | AI 코딩 + 외장 모니터 |
57
- | `4panel` | 4 | 노트북 (13-14") |
58
- | `5panel` | 5 | 균형 잡힌 워크스페이스 |
59
- | `6panel` | 6 | 일반 개발 + 대형 모니터 |
60
- | `7panel_log` | 7 | 풀 로그 바 + 개발 |
61
- | `8panel` | 8 | 듀얼 Claude + 모니터링 |
62
- | `dual-claude` | 7 | 멀티 AI 에이전트 + 울트라와이드 |
63
- | `devops` | 5 | Docker/K8s 운영 |
64
-
65
- 각 도구가 없어도 **자동 폴백** — btop -> htop -> top, yazi -> eza -> tree -> find
66
-
67
- ### 2. Instant Session Resume
68
-
69
- > 언제든 떠나고, 언제든 돌아오는 작업 환경
70
-
71
- tmux 세션 기반으로 **작업 상태가 완벽히 보존**됩니다:
72
-
73
- - `b myproject` — 세션이 있으면 즉시 복귀, 없으면 새로 생성
74
- - AI 대화, Git 상태, 로그 출력 등 **모든 패널의 상태가 그대로** 유지
75
- - SSH 연결이 끊겨도, 터미널을 닫아도 — 다시 `b myproject` 하면 끝
76
- - 여러 프로젝트를 동시에 운영하고 `b ls`로 관리
77
-
78
- ```bash
79
- b myproject # 작업 시작 (또는 이전 세션 복귀)
80
- # ... 작업 중 터미널 닫기, SSH 끊김 등 ...
81
- b myproject # 모든 패널이 그대로 — 바로 이어서 작업
82
- ```
83
-
84
- ### 3. AI Telegram Bot (OpenClaw) — One-Command Deploy
85
-
86
- > 격리된 Docker 환경에서 개인 AI 봇을 명령어 한 줄로 배포
87
-
88
- #### 3-1. Zero-Cost AI for Claude Max Users
89
-
90
- - Claude Max 구독($200/mo)이 있다면 **추가 API 비용 $0**
91
- - OpenClaw 게이트웨이가 Claude Max 세션을 활용 — 토큰 과금 없음
92
- - API 키 방식도 지원 (유량 기반 과금)
93
-
94
- #### 3-2. Secure by Default — Docker Isolation
95
-
96
- 보안 걱정 없는 **5계층 격리**:
97
-
98
- | Layer | Protection |
99
- |-------|-----------|
100
- | **Container** | Read-only filesystem, dropped Linux capabilities |
101
- | **Sandbox** | Tool execution in separate containers |
102
- | **Network** | Loopback binding only (not exposed to LAN) |
103
- | **Access** | Telegram allowlist (only your user ID) |
104
- | **Credentials** | File permissions 600, gateway token auto-generated |
105
-
106
- #### 3-3. 5-Minute Setup
107
-
108
- ```bash
109
- b server init # 3단계 대화형 설정 (봇 토큰, AI 모델, 사용자 ID)
110
- b server start # Docker 서버 시작 — 끝!
111
- ```
112
-
113
- 웹 검색, PDF 분석, 코드 실행, 리포트 생성 등 **풀 AI 에이전트 기능**을 Telegram으로 사용.
114
-
115
- ---
116
-
117
36
  ## Quick Start
118
37
 
119
38
  ```bash
120
39
  # Install (pick one)
121
- curl -fsSL https://batipanel.com/install.sh | bash # Recommended
122
- npx batipanel # npm/npx
123
- brew install batiai/tap/batipanel # Homebrew
40
+ curl -fsSL https://batipanel.com/install.sh | bash # Recommended
41
+ npx batipanel # npm/npx
42
+ brew install batiai/tap/batipanel # Homebrew
124
43
 
125
- # Run — the setup wizard guides you through everything
44
+ # Launch — the setup wizard guides you through everything
126
45
  b
127
46
  ```
128
47
 
@@ -130,287 +49,42 @@ That's it. The wizard asks 2 questions (screen size + workflow) and sets up your
130
49
 
131
50
  ---
132
51
 
133
- ## Installation
134
-
135
- ### Complete beginner? Start here
136
-
137
- **터미널 사용이 처음이거나, npm/Homebrew가 없는 경우** 아래 순서를 따르세요:
138
-
139
- <details>
140
- <summary><b>macOS — 처음부터 설치하기</b></summary>
141
-
142
- 1. **Terminal 열기**: `Cmd + Space` → "Terminal" 검색 → 실행
143
-
144
- 2. **설치 명령어 실행** (복사 후 붙여넣기):
145
- ```bash
146
- curl -fsSL https://batipanel.com/install.sh | bash
147
- ```
148
- - tmux, 기타 도구를 자동으로 설치합니다
149
- - Homebrew가 없으면 안내를 따르세요
150
-
151
- 3. **새 터미널 열기** 후 실행:
152
- ```bash
153
- b
154
- ```
155
-
156
- > **다른 설치 방법**: `npx batipanel` (Node.js 필요) 또는 `brew install batiai/tap/batipanel` (Homebrew)
157
-
158
- </details>
159
-
160
- <details>
161
- <summary><b>Linux / WSL — 처음부터 설치하기</b></summary>
162
-
163
- 1. **터미널 열기**
164
-
165
- 2. **설치 명령어 실행**:
166
- ```bash
167
- curl -fsSL https://batipanel.com/install.sh | bash
168
- ```
169
- - 모든 도구(tmux, btop 등)가 자동 설치됩니다
170
-
171
- 3. **새 터미널 열기** 후 실행:
172
- ```bash
173
- b
174
- ```
175
-
176
- > **다른 설치 방법**: `npx batipanel` (Node.js 필요) 또는 수동 설치: `git clone https://github.com/batiai/batipanel.git && cd batipanel && bash install.sh`
177
-
178
- </details>
179
-
180
- ---
181
-
182
- ### npm / npx
183
-
184
- ```bash
185
- # One-time run (no install needed)
186
- npx batipanel
187
-
188
- # Or install globally
189
- npm install -g batipanel
190
- ```
191
-
192
- ### Homebrew (macOS / Linux)
193
-
194
- ```bash
195
- brew tap batiai/tap
196
- brew install batipanel
197
- ```
198
-
199
- All dependencies (tmux, lazygit, btop, yazi, eza) are installed automatically.
200
-
201
- ### Shell script (Linux / WSL / macOS)
202
-
203
- ```bash
204
- # One-line install (no npm/Node.js required)
205
- curl -fsSL https://batipanel.com/install.sh | bash
206
- ```
207
-
208
- Or clone and install manually:
209
-
210
- ```bash
211
- git clone https://github.com/batiai/batipanel.git
212
- cd batipanel
213
- bash install.sh
214
- ```
215
-
216
- The installer auto-detects your package manager (apt, dnf, pacman, brew, port, nix, apk, zypper) and installs everything.
217
- On macOS, any package manager works — Homebrew, MacPorts, or Nix.
218
-
219
- ### Windows (WSL)
220
-
221
- batipanel runs on Windows through WSL2 (Windows Subsystem for Linux).
222
-
223
- **Step 1: Install WSL2** (skip if you already have it)
224
-
225
- Open PowerShell as Administrator and run:
226
-
227
- ```powershell
228
- wsl --install
229
- ```
230
-
231
- Restart your computer. Ubuntu will open automatically — create a username and password.
232
-
233
- **Step 2: Install batipanel**
234
-
235
- Open **Windows Terminal** > **Ubuntu** tab and run:
236
-
237
- ```bash
238
- curl -fsSL https://batipanel.com/install.sh | bash
239
- ```
240
-
241
- **Step 3: Start**
242
-
243
- ```bash
244
- b
245
- ```
246
-
247
- > **Tip**: For the best experience, use [Windows Terminal](https://aka.ms/terminal) (pre-installed on Windows 11, free on Microsoft Store for Windows 10). Maximize the window or go fullscreen (F11) before launching batipanel.
248
-
249
- ### Upgrading
250
-
251
- ```bash
252
- # npm
253
- npm update -g batipanel
254
-
255
- # Homebrew
256
- brew upgrade batipanel
257
-
258
- # Manual install — just re-run the installer
259
- cd batipanel && git pull && bash install.sh
260
- ```
261
-
262
- Your projects and settings are always preserved.
263
-
264
- ### Uninstalling
265
-
266
- ```bash
267
- # npm
268
- npm uninstall -g batipanel
269
-
270
- # Homebrew
271
- brew uninstall batipanel
272
-
273
- # Manual
274
- bash uninstall.sh
275
- ```
276
-
277
- ---
278
-
279
- ## Usage
280
-
281
- ### First Run
282
-
283
- Just type `b` (or `batipanel`). The setup wizard will:
284
-
285
- 1. Ask your **screen size** (laptop / external monitor / ultrawide)
286
- 2. Ask your **workflow** (AI coding / general dev / DevOps)
287
- 3. Pick the best layout for you
288
- 4. Register your current directory as a project
289
- 5. Launch immediately
290
-
291
- **Wizard layout mapping:**
292
-
293
- | Screen | AI Coding | General Dev | DevOps |
294
- |--------|-----------|-------------|--------|
295
- | Laptop (small) | 4panel | 4panel | devops |
296
- | Monitor (large) | 7panel | 6panel | devops |
297
- | Ultrawide | dual-claude | 7panel_log | devops |
298
-
299
- ### Commands
300
-
301
- #### Session
302
-
303
- ```bash
304
- b myproject # Start or resume a project
305
- b myproject --layout 6panel # Start with a specific layout (-l shorthand)
306
- b stop myproject # Stop a session
307
- b stop myproject -f # Stop without confirmation
308
- b reload myproject # Restart session (stop + start)
309
- b reload myproject --layout 8panel # Restart with a different layout
310
- ```
311
-
312
- #### Project
313
-
314
- ```bash
315
- b new myproject ~/path/to/project # Register a new project
316
- b ls # List active sessions & registered projects
317
- ```
318
-
319
- #### Configuration
320
-
321
- ```bash
322
- b config layout 7panel_log # Change default layout
323
- b config layout # View current default layout
324
- b theme # List available themes
325
- b theme dracula # Apply a theme
326
- b config iterm-cc on # Enable iTerm2 native tmux integration
327
- ```
328
-
329
- #### System
330
-
331
- ```bash
332
- b doctor # Check system health
333
- b layouts # Show available layouts
334
- b help # Show all commands
335
- b --version # Show version
336
- ```
337
-
338
- #### Server (AI Telegram Bot)
339
-
340
- ```bash
341
- b server init # Interactive setup wizard
342
- b server start # Start the Docker server
343
- b server stop # Stop the server
344
- b server status # Show status + security report
345
- b server logs [-f] # View logs (follow with -f)
346
- b server update # Pull latest image & restart
347
- b server config # View configuration (secrets masked)
348
- ```
349
-
350
- #### Global Flags
351
-
352
- | Flag | Description |
353
- |------|-------------|
354
- | `--version`, `-v` | Show version |
355
- | `--debug` | Enable debug logging |
356
- | `--no-color` | Disable colored output (respects [NO_COLOR](https://no-color.org) standard) |
357
-
358
- ### How It Works
52
+ ## Why batipanel?
359
53
 
360
- 1. `b myproject` checks if a session already exists
361
- 2. If yes -> reattaches (your work is exactly where you left it)
362
- 3. If no -> creates a new multi-panel session with your chosen layout
363
- 4. Each panel auto-launches its assigned tool
364
- 5. Missing tools gracefully fall back to alternatives (e.g., btop -> htop -> top)
54
+ | | What it does |
55
+ |---|---|
56
+ | **AI-First Workspace** | Claude Code gets 55%+ of screen space. Remote Control panel lets you command AI from any pane. Dual-Claude layout for multi-agent workflows. |
57
+ | **Multi-Panel Dev Tools** | lazygit, btop, yazi, terminal, logs — all auto-launched in themed panels. Missing tools gracefully fallback (btop → htop → top). |
58
+ | **8 Layout Presets** | From 4-panel laptop mode to 8-panel ultrawide. Switch anytime with `b myproject --layout 6panel`. |
59
+ | **Instant Session Resume** | tmux-powered persistence. SSH drops? Terminal closed? `b myproject` brings everything back exactly as you left it. |
60
+ | **8 Color Themes** | Dracula, Nord, Gruvbox, Tokyo Night, Catppuccin, Rose Pine, Kanagawa + default. Powerline-style status bar and shell prompt. Live reload. |
61
+ | **AI Telegram Bot** | Deploy a personal AI bot in Docker with `b server init && b server start`. Zero extra cost for Claude Max users. |
365
62
 
366
63
  ---
367
64
 
368
- ## Color Themes
369
-
370
- batipanel includes **8 built-in color themes** that style the tmux status bar, window tabs, pane borders, and shell prompt.
65
+ ## Layouts
371
66
 
372
67
  ```bash
373
- b theme # List all themes
374
- b theme dracula # Apply a theme (live reload)
68
+ b myproject # use default layout
69
+ b myproject --layout 6panel # use specific layout
70
+ b config layout dual-claude # change default
375
71
  ```
376
72
 
377
- | Theme | Style |
378
- |-------|-------|
379
- | `default` | Green/blue clean and balanced |
380
- | `dracula` | Purple/pink dark theme |
381
- | `nord` | Arctic blue palette |
382
- | `gruvbox` | Retro warm colors |
383
- | `tokyo-night` | Blue/purple night theme |
384
- | `catppuccin` | Pastel warm dark (Mocha variant) |
385
- | `rose-pine` | Warm rose, soho vibes |
386
- | `kanagawa` | Japanese ink painting palette |
387
-
388
- **Theme applies to:**
389
- - tmux status bar with Powerline-style arrow separators
390
- - Window tabs (active/inactive distinction)
391
- - Pane borders and titles (each panel labeled: Claude, Git, Shell, Monitor, etc.)
392
- - Shell prompt (Powerline-style segments: user, directory, git branch)
393
- - Messages and notifications
394
-
395
- Themes persist across sessions. Live-reload if tmux is already running.
396
-
397
- ### Shell Prompt
398
-
399
- The installer sets up a Powerline-style shell prompt themed to match:
400
-
401
- - **Zsh**: Oh My Zsh + agnoster theme (hostname hidden)
402
- - **Bash**: Powerline-style PS1 with git branch (hostname hidden)
403
- - **Fonts**: Powerline / Nerd Fonts auto-installed (apt/brew/git fallback)
404
-
405
- ---
406
-
407
- ## Layouts
408
-
409
- Choose the layout that fits your screen and workflow. Change anytime with `b <project> --layout <name>`.
73
+ | Layout | Panels | Best For |
74
+ |--------|--------|----------|
75
+ | `7panel` *(default)* | 7 | AI coding + external monitor |
76
+ | `4panel` | 4 | Laptops (13-14") |
77
+ | `5panel` | 5 | Balanced workspace |
78
+ | `6panel` | 6 | General dev + large monitor |
79
+ | `7panel_log` | 7 | Full-width log bar |
80
+ | `8panel` | 8 | Dual Claude + monitoring |
81
+ | `dual-claude` | 7 | Multi AI agent + ultrawide |
82
+ | `devops` | 5 | Docker / K8s operations |
410
83
 
411
- ### 7panel (default) — Claude-focused workspace
84
+ <details>
85
+ <summary><b>Layout diagrams</b></summary>
412
86
 
413
- Best for: external monitors, AI-assisted coding
87
+ ### 7panel (default)
414
88
 
415
89
  ```
416
90
  ┌────────────────────────────────┬──────────────┐
@@ -424,23 +98,17 @@ Best for: external monitors, AI-assisted coding
424
98
  └───────────┴──────────────────┴────────────────┘
425
99
  ```
426
100
 
427
- ### 4panel — Minimal workspace
428
-
429
- Best for: laptops (13-14"), smaller screens
101
+ ### 4panel
430
102
 
431
103
  ```
432
104
  ┌────────────────────────┬──────────────────┐
433
- │ │ │
434
105
  │ claude (main) │ btop │
435
- │ │ │
436
106
  ├────────────────────────┼──────────────────┤
437
107
  │ lazygit │ terminal │
438
108
  └────────────────────────┴──────────────────┘
439
109
  ```
440
110
 
441
- ### 6panel — Balanced grid
442
-
443
- Best for: general development on a large monitor
111
+ ### 6panel
444
112
 
445
113
  ```
446
114
  ┌──────────────┬───────────────┬────────────────┐
@@ -450,30 +118,22 @@ Best for: general development on a large monitor
450
118
  └──────────────┴───────────────┴────────────────┘
451
119
  ```
452
120
 
453
- ### dual-claude — Multi-agent workspace
454
-
455
- Best for: ultrawide monitors, running two Claude instances
121
+ ### dual-claude
456
122
 
457
123
  ```
458
124
  ┌──────────────────┬──────────────────┐
459
- │ │ │
460
125
  │ claude #1 │ claude #2 │
461
126
  │ (main) │ (secondary) │
462
- │ │ │
463
127
  ├──────────┬───────┴──────┬───────────┤
464
128
  │ lazygit │ terminal │ file mgr │
465
129
  └──────────┴──────────────┴───────────┘
466
130
  ```
467
131
 
468
- ### devops — Infrastructure monitoring
469
-
470
- Best for: Docker/Kubernetes workflows
132
+ ### devops
471
133
 
472
134
  ```
473
135
  ┌──────────────────┬──────────────────┐
474
- │ │ │
475
136
  │ claude │ btop │
476
- │ │ │
477
137
  ├──────────────────┼──────────────────┤
478
138
  │ lazydocker │ terminal │
479
139
  ├──────────────────┴──────────────────┤
@@ -481,22 +141,17 @@ Best for: Docker/Kubernetes workflows
481
141
  └─────────────────────────────────────┘
482
142
  ```
483
143
 
484
- <details>
485
- <summary>More layouts: 5panel, 7panel_log, 8panel</summary>
486
-
487
- ### 5panel — Balanced workspace
144
+ ### 5panel
488
145
 
489
146
  ```
490
147
  ┌──────────────────────────────┬──────────────┐
491
- │ │ │
492
148
  │ claude (main) │ lazygit │
493
- │ │ │
494
149
  ├──────────────┬───────────────┼──────────────┤
495
150
  │ remote-ctrl │ terminal │ file tree │
496
151
  └──────────────┴───────────────┴──────────────┘
497
152
  ```
498
153
 
499
- ### 7panel_log — Full-width log bar
154
+ ### 7panel_log
500
155
 
501
156
  ```
502
157
  ┌───────────────────────┬──────────┬────────────┐
@@ -509,11 +164,10 @@ Best for: Docker/Kubernetes workflows
509
164
  └───────────────────────────────────────────────┘
510
165
  ```
511
166
 
512
- ### 8panel — Dual Claude + monitor
167
+ ### 8panel
513
168
 
514
169
  ```
515
170
  ┌──────────────┬──────────────┬──────────────┐
516
- │ │ │ │
517
171
  │ claude #1 │ claude #2 │ btop │
518
172
  │ (main) │ (secondary) │ │
519
173
  │ │ ├──────────────┤
@@ -527,38 +181,93 @@ Best for: Docker/Kubernetes workflows
527
181
 
528
182
  ---
529
183
 
530
- ## Keyboard Shortcuts
184
+ ## Color Themes
531
185
 
532
- ### Panel Navigation
186
+ ```bash
187
+ b theme # list all themes
188
+ b theme dracula # apply a theme (live reload)
189
+ ```
190
+
191
+ | Theme | Style |
192
+ |-------|-------|
193
+ | `default` | Green/blue — clean and balanced |
194
+ | `dracula` | Purple/pink dark theme |
195
+ | `nord` | Arctic blue palette |
196
+ | `gruvbox` | Retro warm colors |
197
+ | `tokyo-night` | Blue/purple night theme |
198
+ | `catppuccin` | Pastel warm dark (Mocha) |
199
+ | `rose-pine` | Warm rose, soho vibes |
200
+ | `kanagawa` | Japanese ink painting palette |
201
+
202
+ Themes apply to tmux status bar (Powerline arrows), window tabs, pane borders, and shell prompt. Persists across sessions.
203
+
204
+ ---
205
+
206
+ ## Commands
207
+
208
+ ```bash
209
+ # Session
210
+ b myproject # start or resume
211
+ b myproject --layout 6panel # start with specific layout
212
+ b stop myproject # stop session
213
+ b reload myproject # restart session
214
+
215
+ # Project
216
+ b new myproject ~/path/to/project # register project
217
+ b ls # list sessions & projects
218
+
219
+ # Config
220
+ b config layout 7panel_log # change default layout
221
+ b theme dracula # change color theme
222
+ b config iterm-cc on # iTerm2 native integration
223
+
224
+ # System
225
+ b doctor # check system health
226
+ b layouts # show available layouts
227
+ b help # show all commands
228
+
229
+ # AI Telegram Bot (Docker)
230
+ b server init # interactive setup
231
+ b server start # start server
232
+ b server stop # stop server
233
+ b server status # status + security report
234
+ ```
235
+
236
+ ---
237
+
238
+ ## Keyboard Shortcuts
533
239
 
534
240
  | Shortcut | Action |
535
241
  |----------|--------|
536
242
  | **Alt + h/j/k/l** | Move between panels (vim-style) |
537
243
  | **Alt + Arrow Keys** | Move between panels |
538
- | **Alt + Space** | Toggle last panel |
539
244
  | **Alt + f** | Zoom/focus current panel (toggle) |
245
+ | **Alt + Space** | Toggle last panel |
540
246
  | **Alt + 1-9** | Switch to window by number |
541
- | **Alt + [ / ]** | Previous / next window |
247
+
248
+ <details>
249
+ <summary><b>All keyboard shortcuts</b></summary>
542
250
 
543
251
  ### Panel Management
544
252
 
545
253
  | Shortcut | Action |
546
254
  |----------|--------|
547
- | **Alt + \\** | Split vertically (new pane right) |
548
- | **Alt + -** | Split horizontally (new pane below) |
549
- | **Alt + x** | Close current panel (with confirmation) |
255
+ | **Alt + \\** | Split vertically |
256
+ | **Alt + -** | Split horizontally |
257
+ | **Alt + x** | Close current panel |
550
258
  | **Alt + n** | New window |
259
+ | **Alt + [ / ]** | Previous / next window |
551
260
 
552
- ### Panel Resizing
261
+ ### Resizing
553
262
 
554
263
  | Shortcut | Action |
555
264
  |----------|--------|
556
265
  | **Alt + Shift + Arrow** | Fine resize (1 unit) |
557
266
  | **Prefix + Arrow** | Resize (5 units, prefix = Ctrl+B) |
558
- | **Prefix + =** | Equalize all panel sizes |
559
- | **Mouse drag** | Drag panel borders to resize |
267
+ | **Prefix + =** | Equalize all panels |
268
+ | **Mouse drag** | Drag panel borders |
560
269
 
561
- ### Panel Swapping
270
+ ### Swapping
562
271
 
563
272
  | Shortcut | Action |
564
273
  |----------|--------|
@@ -570,11 +279,11 @@ Best for: Docker/Kubernetes workflows
570
279
  |----------|--------|
571
280
  | **Prefix + [** | Enter copy mode |
572
281
  | **v** | Begin selection |
573
- | **Ctrl + v** | Toggle rectangle selection |
574
- | **y** | Copy to system clipboard |
282
+ | **Ctrl + v** | Rectangle selection |
283
+ | **y** | Copy to clipboard |
575
284
  | **Escape** | Exit copy mode |
576
285
 
577
- ### Session Management
286
+ ### Session
578
287
 
579
288
  | Shortcut | Action |
580
289
  |----------|--------|
@@ -582,166 +291,193 @@ Best for: Docker/Kubernetes workflows
582
291
  | **Prefix + S** | New session |
583
292
  | **Prefix + r** | Reload tmux config |
584
293
 
585
- ---
294
+ </details>
586
295
 
587
- ## Customization
296
+ ---
588
297
 
589
- ### Register a project
298
+ ## Installation
590
299
 
591
- ```bash
592
- b new myproject ~/code/myproject
593
- ```
300
+ <details>
301
+ <summary><b>macOS step by step</b></summary>
594
302
 
595
- ### Change default layout
303
+ 1. Open Terminal (`Cmd + Space` → "Terminal")
304
+ 2. Run:
305
+ ```bash
306
+ curl -fsSL https://batipanel.com/install.sh | bash
307
+ ```
308
+ 3. Type `b` to start
596
309
 
597
- ```bash
598
- b config layout 7panel_log
599
- ```
310
+ > **Alternatives**: `npx batipanel` (Node.js required) or `brew install batiai/tap/batipanel`
600
311
 
601
- ### Change color theme
312
+ </details>
602
313
 
603
- ```bash
604
- b theme dracula
605
- ```
314
+ <details>
315
+ <summary><b>Linux / WSL — step by step</b></summary>
606
316
 
607
- ### Enable Nerd Font icons in file tree
317
+ 1. Open your terminal
318
+ 2. Run:
319
+ ```bash
320
+ curl -fsSL https://batipanel.com/install.sh | bash
321
+ ```
322
+ 3. Type `b` to start
608
323
 
609
- ```bash
610
- b config icons on
611
- ```
324
+ > **Alternatives**: `npx batipanel` or `git clone https://github.com/batiai/batipanel.git && cd batipanel && bash install.sh`
612
325
 
613
- Icons are auto-detected on known Nerd Font terminals (iTerm2, WezTerm, Kitty).
326
+ </details>
614
327
 
615
- ### iTerm2 native integration
328
+ <details>
329
+ <summary><b>Windows (WSL2)</b></summary>
616
330
 
617
- ```bash
618
- b config iterm-cc on # Use iTerm2 native splits (auto-detected on first run)
619
- b config iterm-cc off # Use standard tmux UI
331
+ **Step 1**: Install WSL2 (PowerShell as Administrator):
332
+ ```powershell
333
+ wsl --install
620
334
  ```
621
335
 
622
- ### Create a custom layout
623
-
336
+ **Step 2**: Open **Windows Terminal** > **Ubuntu** tab:
624
337
  ```bash
625
- cp ~/.batipanel/layouts/7panel.sh ~/.batipanel/layouts/custom.sh
626
- # Edit custom.sh to your needs
627
- b myproject --layout custom
338
+ curl -fsSL https://batipanel.com/install.sh | bash
628
339
  ```
629
340
 
630
- ---
341
+ **Step 3**: Type `b`
631
342
 
632
- ## Terminal Compatibility
343
+ > **Tip**: Use [Windows Terminal](https://aka.ms/terminal) and go fullscreen (F11) for the best experience.
633
344
 
634
- batipanel works with any terminal that supports tmux:
345
+ </details>
635
346
 
636
- | Platform | Supported Terminals |
637
- |----------|---------------------|
638
- | **macOS** | Terminal.app, iTerm2, Alacritty, Kitty, WezTerm, Warp |
639
- | **Linux** | GNOME Terminal, Konsole, Alacritty, Kitty, WezTerm, xterm |
640
- | **Windows** | Windows Terminal + WSL2 |
347
+ <details>
348
+ <summary><b>npm / Homebrew / manual</b></summary>
641
349
 
642
- - **iTerm2**: Auto-detected — supports native tmux integration for seamless tabs
643
- - **Clipboard**: Copy from tmux works automatically on all platforms (macOS, Linux X11, WSL)
644
- - **True Color**: 24-bit color support enabled by default
350
+ ```bash
351
+ # npm one-time run
352
+ npx batipanel
645
353
 
646
- ---
354
+ # npm — global install
355
+ npm install -g batipanel
647
356
 
648
- ## Requirements
357
+ # Homebrew
358
+ brew tap batiai/tap
359
+ brew install batipanel
649
360
 
650
- | Tool | Required? | Notes |
651
- |------|-----------|-------|
652
- | **tmux** | Yes | Auto-installed by the installer |
653
- | **Claude Code** | Recommended | AI assistant — `curl -fsSL https://claude.ai/install.sh \| bash` |
654
- | lazygit | Optional | Git UI — falls back to `git status` |
655
- | btop | Optional | System monitor — falls back to htop or top |
656
- | yazi | Optional | File manager — falls back to eza, tree, or find |
657
- | eza | Optional | Modern `ls` — falls back to tree or find |
658
- | Docker | Optional | Required only for `b server` (Telegram bot) |
361
+ # Manual
362
+ git clone https://github.com/batiai/batipanel.git
363
+ cd batipanel && bash install.sh
364
+ ```
659
365
 
660
- All optional tools are auto-installed when possible. If any are missing, batipanel still works each panel gracefully falls back to a simpler alternative.
366
+ The installer auto-detects your package manager (apt, dnf, pacman, brew, port, nix, apk, zypper) and installs everything.
661
367
 
662
- ---
368
+ </details>
663
369
 
664
- ## Troubleshooting
370
+ <details>
371
+ <summary><b>Upgrading / Uninstalling</b></summary>
665
372
 
666
- ### "tmux is not installed"
373
+ ```bash
374
+ # Upgrade
375
+ npm update -g batipanel # npm
376
+ brew upgrade batipanel # Homebrew
377
+ cd batipanel && git pull && bash install.sh # manual
667
378
 
668
- The installer tries to install tmux automatically. If it fails:
379
+ # Uninstall
380
+ npm uninstall -g batipanel # npm
381
+ brew uninstall batipanel # Homebrew
382
+ bash uninstall.sh # manual
383
+ ```
669
384
 
670
- ```bash
671
- # macOS
672
- brew install tmux
385
+ Your projects and settings are always preserved during upgrades.
673
386
 
674
- # Ubuntu/Debian
675
- sudo apt install tmux
387
+ </details>
676
388
 
677
- # Fedora
678
- sudo dnf install tmux
679
- ```
389
+ ---
680
390
 
681
- ### Panels look too small or overlap
391
+ ## AI Telegram Bot (OpenClaw)
682
392
 
683
- Your terminal window might be too small for the selected layout. Try:
393
+ Deploy a personal AI bot in an isolated Docker environment with one command.
684
394
 
685
395
  ```bash
686
- b myproject --layout 4panel # simpler layout for smaller screens
396
+ b server init # 3-step setup wizard (bot token, AI model, user ID)
397
+ b server start # start Docker server — done!
687
398
  ```
688
399
 
689
- Or maximize your terminal window / go fullscreen.
690
-
691
- ### "claude CLI not installed"
400
+ - **Zero extra cost** for Claude Max subscribers ($200/mo) OpenClaw gateway uses your existing session
401
+ - **5-layer Docker isolation** — read-only filesystem, network loopback, Telegram allowlist, sandboxed tool execution
402
+ - Full AI agent capabilities via Telegram: web search, PDF analysis, code execution, report generation
692
403
 
693
- Install Claude Code:
404
+ <details>
405
+ <summary><b>Server commands & security details</b></summary>
694
406
 
695
407
  ```bash
696
- curl -fsSL https://claude.ai/install.sh | bash
408
+ b server init # interactive setup wizard
409
+ b server start # start the Docker server
410
+ b server stop # stop the server
411
+ b server status # status + security report
412
+ b server logs [-f] # view logs
413
+ b server update # pull latest image & restart
414
+ b server config # view config (secrets masked)
697
415
  ```
698
416
 
699
- The panel will show a reminder if Claude Code is missing — everything else still works.
417
+ | Security Layer | Protection |
418
+ |----------------|-----------|
419
+ | **Container** | Read-only filesystem, dropped Linux capabilities |
420
+ | **Sandbox** | Tool execution in separate containers |
421
+ | **Network** | Loopback binding only (not exposed to LAN) |
422
+ | **Access** | Telegram allowlist (only your user ID) |
423
+ | **Credentials** | File permissions 600, gateway token auto-generated |
700
424
 
701
- ### WSL: clipboard not working
425
+ </details>
702
426
 
703
- Install xclip:
427
+ ---
704
428
 
705
- ```bash
706
- sudo apt install xclip
707
- ```
429
+ ## Requirements
708
430
 
709
- ### How do I navigate between panels?
431
+ | Tool | Required? | Notes |
432
+ |------|-----------|-------|
433
+ | **tmux** | Yes | Auto-installed |
434
+ | **Claude Code** | Recommended | `curl -fsSL https://claude.ai/install.sh \| bash` |
435
+ | lazygit | Optional | Git UI (fallback: `git status`) |
436
+ | btop | Optional | Monitor (fallback: htop → top) |
437
+ | yazi | Optional | File manager (fallback: eza → tree) |
438
+ | Docker | Optional | Only for `b server` (Telegram bot) |
710
439
 
711
- - **Alt + h/j/k/l** switch panels (vim-style)
712
- - **Alt + Arrow Keys** — switch panels
713
- - **Alt + f** — zoom/focus a panel (toggle fullscreen)
714
- - **Prefix + Arrow Keys** — resize panels (prefix = Ctrl+B by default)
715
- - **Mouse** — click to select a panel, drag borders to resize, scroll to view history
440
+ All optional tools are auto-installed when possible. Missing tools gracefully fallback to simpler alternatives.
716
441
 
717
442
  ---
718
443
 
719
- ## Contributing
444
+ ## Terminal Compatibility
720
445
 
721
- Contributions are welcome! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.
446
+ | Platform | Supported Terminals |
447
+ |----------|---------------------|
448
+ | **macOS** | iTerm2, Terminal.app, Alacritty, Kitty, WezTerm, Warp |
449
+ | **Linux** | GNOME Terminal, Konsole, Alacritty, Kitty, WezTerm, xterm |
450
+ | **Windows** | Windows Terminal + WSL2 |
722
451
 
723
- 1. Fork the repository
724
- 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
725
- 3. Commit your changes (`git commit -m 'Add amazing feature'`)
726
- 4. Push to the branch (`git push origin feature/amazing-feature`)
727
- 5. Open a Pull Request
452
+ <details>
453
+ <summary><b>Troubleshooting</b></summary>
728
454
 
729
- ---
455
+ **Panels look too small?** Try `b myproject --layout 4panel` or maximize your terminal.
730
456
 
731
- ## License
457
+ **"tmux is not installed"?** Run `brew install tmux` (macOS) or `sudo apt install tmux` (Ubuntu).
732
458
 
733
- [MIT](LICENSE) Copyright (c) 2026 [bati.ai](https://bati.ai)
459
+ **"claude CLI not installed"?** Run `curl -fsSL https://claude.ai/install.sh | bash`. Everything else still works without it.
734
460
 
735
- ## Trademark
461
+ **WSL clipboard not working?** Run `sudo apt install xclip`.
736
462
 
737
- "batipanel" and the batipanel logo are trademarks of batiai. The MIT license grants rights to the source code only, not to the batipanel name or branding. See [TRADEMARK.md](TRADEMARK.md) for details.
463
+ **Navigation**: Use `Alt + h/j/k/l` to switch panels, `Alt + f` to zoom, mouse click to select.
738
464
 
739
- ## Author
465
+ </details>
466
+
467
+ ---
468
+
469
+ ## Contributing
740
470
 
741
- Made by [bati.ai](https://bati.ai)
471
+ Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
742
472
 
743
473
  ---
744
474
 
475
+ ## License
476
+
477
+ [MIT](LICENSE) — Copyright (c) 2026 [bati.ai](https://bati.ai)
478
+
479
+ "batipanel" and the batipanel logo are trademarks of batiai. See [TRADEMARK.md](TRADEMARK.md) for details.
480
+
745
481
  <p align="center">
746
- <sub>Sponsored by <a href="https://bati.ai">bati.ai</a></sub>
482
+ <a href="https://batipanel.com">batipanel.com</a> · Made by <a href="https://bati.ai">bati.ai</a>
747
483
  </p>
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.28
1
+ 0.4.29
package/install.sh CHANGED
@@ -762,5 +762,13 @@ else
762
762
  echo "Tip: Set your terminal font to a Nerd Font (e.g. MesloLGS NF)"
763
763
  echo " for powerline arrow-style prompt glyphs."
764
764
  echo ""
765
- echo "Open a new terminal window, then type: b"
765
+ echo "Type: b"
766
+ fi
767
+
768
+ # === reload shell so prompt theme applies immediately ===
769
+ # only exec when running interactively (not from npm postinstall or scripts)
770
+ if [ -t 0 ] && [ -t 1 ] && [ -z "${npm_lifecycle_event:-}" ]; then
771
+ echo ""
772
+ echo "Reloading shell to apply prompt theme..."
773
+ exec "$SHELL" -l
766
774
  fi
package/lib/layout.sh CHANGED
@@ -103,6 +103,9 @@ run_monitor() {
103
103
  ph=$(tmux display-message -t "$pane" -p '#{pane_height}' 2>/dev/null || echo 0)
104
104
  if (( pw >= 80 && ph >= 24 )); then
105
105
  tmux send-keys -t "$pane" "btop" Enter
106
+ elif (( pw >= 40 && ph >= 10 )); then
107
+ # compact mode: cpu+proc only (preset 1) fits small panes
108
+ tmux send-keys -t "$pane" "btop -p 1" Enter
106
109
  else
107
110
  # pane too small for btop — let user choose
108
111
  tmux send-keys -t "$pane" \
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "batipanel",
3
- "version": "0.4.28",
3
+ "version": "0.4.29",
4
4
  "description": "AI-powered terminal workspace manager — multi-panel tmux layouts with Claude Code, git, monitoring, and more",
5
5
  "bin": {
6
6
  "batipanel": "./bin/cli.sh"