batipanel 0.4.28 → 0.4.30
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 +250 -514
- package/VERSION +1 -1
- package/install.sh +15 -1
- package/lib/layout.sh +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
[](LICENSE)
|
|
7
|
-
[]()
|
|
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
|
-
|
|
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
|
|
122
|
-
npx batipanel
|
|
123
|
-
brew install batiai/tap/batipanel
|
|
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
|
-
#
|
|
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
|
-
##
|
|
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
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
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
|
-
##
|
|
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
|
|
374
|
-
b
|
|
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
|
-
|
|
|
378
|
-
|
|
379
|
-
| `
|
|
380
|
-
| `
|
|
381
|
-
| `
|
|
382
|
-
| `
|
|
383
|
-
| `
|
|
384
|
-
| `
|
|
385
|
-
| `
|
|
386
|
-
| `
|
|
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
|
-
|
|
84
|
+
<details>
|
|
85
|
+
<summary><b>Layout diagrams</b></summary>
|
|
412
86
|
|
|
413
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
##
|
|
184
|
+
## Color Themes
|
|
531
185
|
|
|
532
|
-
|
|
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
|
-
|
|
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
|
|
548
|
-
| **Alt + -** | Split horizontally
|
|
549
|
-
| **Alt + x** | Close current panel
|
|
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
|
-
###
|
|
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
|
|
559
|
-
| **Mouse drag** | Drag panel borders
|
|
267
|
+
| **Prefix + =** | Equalize all panels |
|
|
268
|
+
| **Mouse drag** | Drag panel borders |
|
|
560
269
|
|
|
561
|
-
###
|
|
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** |
|
|
574
|
-
| **y** | Copy to
|
|
282
|
+
| **Ctrl + v** | Rectangle selection |
|
|
283
|
+
| **y** | Copy to clipboard |
|
|
575
284
|
| **Escape** | Exit copy mode |
|
|
576
285
|
|
|
577
|
-
### Session
|
|
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
|
-
|
|
296
|
+
---
|
|
588
297
|
|
|
589
|
-
|
|
298
|
+
## Installation
|
|
590
299
|
|
|
591
|
-
|
|
592
|
-
b
|
|
593
|
-
```
|
|
300
|
+
<details>
|
|
301
|
+
<summary><b>macOS — step by step</b></summary>
|
|
594
302
|
|
|
595
|
-
|
|
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
|
-
|
|
598
|
-
b config layout 7panel_log
|
|
599
|
-
```
|
|
310
|
+
> **Alternatives**: `npx batipanel` (Node.js required) or `brew install batiai/tap/batipanel`
|
|
600
311
|
|
|
601
|
-
|
|
312
|
+
</details>
|
|
602
313
|
|
|
603
|
-
|
|
604
|
-
b
|
|
605
|
-
```
|
|
314
|
+
<details>
|
|
315
|
+
<summary><b>Linux / WSL — step by step</b></summary>
|
|
606
316
|
|
|
607
|
-
|
|
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
|
-
|
|
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
|
-
|
|
326
|
+
</details>
|
|
614
327
|
|
|
615
|
-
|
|
328
|
+
<details>
|
|
329
|
+
<summary><b>Windows (WSL2)</b></summary>
|
|
616
330
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
331
|
+
**Step 1**: Install WSL2 (PowerShell as Administrator):
|
|
332
|
+
```powershell
|
|
333
|
+
wsl --install
|
|
620
334
|
```
|
|
621
335
|
|
|
622
|
-
|
|
623
|
-
|
|
336
|
+
**Step 2**: Open **Windows Terminal** > **Ubuntu** tab:
|
|
624
337
|
```bash
|
|
625
|
-
|
|
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
|
-
|
|
343
|
+
> **Tip**: Use [Windows Terminal](https://aka.ms/terminal) and go fullscreen (F11) for the best experience.
|
|
633
344
|
|
|
634
|
-
|
|
345
|
+
</details>
|
|
635
346
|
|
|
636
|
-
|
|
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
|
-
|
|
643
|
-
|
|
644
|
-
|
|
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
|
-
|
|
357
|
+
# Homebrew
|
|
358
|
+
brew tap batiai/tap
|
|
359
|
+
brew install batipanel
|
|
649
360
|
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
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
|
-
|
|
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
|
-
|
|
370
|
+
<details>
|
|
371
|
+
<summary><b>Upgrading / Uninstalling</b></summary>
|
|
665
372
|
|
|
666
|
-
|
|
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
|
-
|
|
379
|
+
# Uninstall
|
|
380
|
+
npm uninstall -g batipanel # npm
|
|
381
|
+
brew uninstall batipanel # Homebrew
|
|
382
|
+
bash uninstall.sh # manual
|
|
383
|
+
```
|
|
669
384
|
|
|
670
|
-
|
|
671
|
-
# macOS
|
|
672
|
-
brew install tmux
|
|
385
|
+
Your projects and settings are always preserved during upgrades.
|
|
673
386
|
|
|
674
|
-
|
|
675
|
-
sudo apt install tmux
|
|
387
|
+
</details>
|
|
676
388
|
|
|
677
|
-
|
|
678
|
-
sudo dnf install tmux
|
|
679
|
-
```
|
|
389
|
+
---
|
|
680
390
|
|
|
681
|
-
|
|
391
|
+
## AI Telegram Bot (OpenClaw)
|
|
682
392
|
|
|
683
|
-
|
|
393
|
+
Deploy a personal AI bot in an isolated Docker environment with one command.
|
|
684
394
|
|
|
685
395
|
```bash
|
|
686
|
-
b
|
|
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
|
-
|
|
690
|
-
|
|
691
|
-
|
|
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
|
-
|
|
404
|
+
<details>
|
|
405
|
+
<summary><b>Server commands & security details</b></summary>
|
|
694
406
|
|
|
695
407
|
```bash
|
|
696
|
-
|
|
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
|
-
|
|
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
|
-
|
|
425
|
+
</details>
|
|
702
426
|
|
|
703
|
-
|
|
427
|
+
---
|
|
704
428
|
|
|
705
|
-
|
|
706
|
-
sudo apt install xclip
|
|
707
|
-
```
|
|
429
|
+
## Requirements
|
|
708
430
|
|
|
709
|
-
|
|
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
|
-
-
|
|
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
|
-
##
|
|
444
|
+
## Terminal Compatibility
|
|
720
445
|
|
|
721
|
-
|
|
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
|
-
|
|
724
|
-
|
|
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
|
-
|
|
457
|
+
**"tmux is not installed"?** Run `brew install tmux` (macOS) or `sudo apt install tmux` (Ubuntu).
|
|
732
458
|
|
|
733
|
-
|
|
459
|
+
**"claude CLI not installed"?** Run `curl -fsSL https://claude.ai/install.sh | bash`. Everything else still works without it.
|
|
734
460
|
|
|
735
|
-
|
|
461
|
+
**WSL clipboard not working?** Run `sudo apt install xclip`.
|
|
736
462
|
|
|
737
|
-
|
|
463
|
+
**Navigation**: Use `Alt + h/j/k/l` to switch panels, `Alt + f` to zoom, mouse click to select.
|
|
738
464
|
|
|
739
|
-
|
|
465
|
+
</details>
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Contributing
|
|
740
470
|
|
|
741
|
-
|
|
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
|
-
<
|
|
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.
|
|
1
|
+
0.4.30
|
package/install.sh
CHANGED
|
@@ -613,6 +613,12 @@ if [ "$NEED_LOCAL_BIN_PATH" = "1" ]; then
|
|
|
613
613
|
fi
|
|
614
614
|
fi
|
|
615
615
|
|
|
616
|
+
# === 8b. enable powerline glyphs by default ===
|
|
617
|
+
if ! grep -qF 'BATIPANEL_ICONS' "$SHELL_RC" 2>/dev/null; then
|
|
618
|
+
echo 'export BATIPANEL_ICONS="1"' >> "$SHELL_RC"
|
|
619
|
+
echo " Enabled powerline glyphs (BATIPANEL_ICONS=1)"
|
|
620
|
+
fi
|
|
621
|
+
|
|
616
622
|
# === 9. register tab completion ===
|
|
617
623
|
if [ "$USER_SHELL" = "zsh" ]; then
|
|
618
624
|
# zsh: install completion + ensure compinit runs
|
|
@@ -762,5 +768,13 @@ else
|
|
|
762
768
|
echo "Tip: Set your terminal font to a Nerd Font (e.g. MesloLGS NF)"
|
|
763
769
|
echo " for powerline arrow-style prompt glyphs."
|
|
764
770
|
echo ""
|
|
765
|
-
echo "
|
|
771
|
+
echo "Type: b"
|
|
772
|
+
fi
|
|
773
|
+
|
|
774
|
+
# === reload shell so prompt theme applies immediately ===
|
|
775
|
+
# only exec when running interactively (not from npm postinstall or scripts)
|
|
776
|
+
if [ -t 0 ] && [ -t 1 ] && [ -z "${npm_lifecycle_event:-}" ]; then
|
|
777
|
+
echo ""
|
|
778
|
+
echo "Reloading shell to apply prompt theme..."
|
|
779
|
+
exec "$SHELL" -l
|
|
766
780
|
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