Spaces:
Paused
Paused
|
Download jules_branch/docs/terminal.md from GraziePrego/automaker: direct link, hf CLI and curl.
- Browser
- Download file 3.82 kB
-
https://huggingface.co/spaces/GraziePrego/automaker/resolve/main/jules_branch/docs/terminal.md
- Command line
-
hf download hf://spaces/GraziePrego/automaker/jules_branch/docs/terminal.md
-
curl -L -o terminal.md https://huggingface.co/spaces/GraziePrego/automaker/resolve/main/jules_branch/docs/terminal.md
3.82 kB
| # Terminal | |
| The integrated terminal provides a full-featured terminal emulator within Automaker, powered by xterm.js. | |
| ## Configuration | |
| Configure the terminal via environment variables in `apps/server/.env`: | |
| ### Disable Terminal Completely | |
| ``` | |
| TERMINAL_ENABLED=false | |
| ``` | |
| Set to `false` to completely disable the terminal feature. | |
| ### Password Protection | |
| ``` | |
| TERMINAL_PASSWORD=yourpassword | |
| ``` | |
| By default, the terminal is **not password protected**. Add this variable to require a password. | |
| When password protection is enabled: | |
| - Enter the password in **Settings > Terminal** to unlock | |
| - The terminal remains unlocked for the session | |
| - You can toggle password requirement on/off in settings after unlocking | |
| ## Keyboard Shortcuts | |
| When the terminal is focused, the following shortcuts are available: | |
| | Shortcut | Action | | |
| | -------- | --------------------------------------- | | |
| | `Alt+T` | Open new terminal tab | | |
| | `Alt+D` | Split terminal right (horizontal split) | | |
| | `Alt+S` | Split terminal down (vertical split) | | |
| | `Alt+W` | Close current terminal | | |
| These shortcuts are customizable via the keyboard shortcuts settings (Settings > Keyboard Shortcuts). | |
| ### Split Pane Navigation | |
| Navigate between terminal panes using directional shortcuts: | |
| | Shortcut | Action | | |
| | --------------------------------- | ------------------------------------ | | |
| | `Ctrl+Alt+ArrowUp` (or `Cmd+Alt`) | Move focus to terminal pane above | | |
| | `Ctrl+Alt+ArrowDown` | Move focus to terminal pane below | | |
| | `Ctrl+Alt+ArrowLeft` | Move focus to terminal pane on left | | |
| | `Ctrl+Alt+ArrowRight` | Move focus to terminal pane on right | | |
| The navigation is spatially aware - pressing Down will move to the terminal below your current one, not just cycle through terminals in order. | |
| Global shortcut (works anywhere in the app): | |
| | Shortcut | Action | | |
| |----------|--------| | |
| | `Cmd+`` (Mac) / `Ctrl+`` (Windows/Linux) | Toggle terminal view | | |
| ## Features | |
| ### Multiple Terminals | |
| - Create multiple terminal tabs using the `+` button | |
| - Split terminals horizontally or vertically within a tab | |
| - Drag terminals to rearrange them | |
| ### Theming | |
| The terminal automatically matches your app theme. Supported themes include: | |
| - Light / Dark / System | |
| - Retro, Dracula, Nord, Monokai | |
| - Tokyo Night, Solarized, Gruvbox | |
| - Catppuccin, One Dark, Synthwave, Red | |
| ### Font Size | |
| - Use the zoom controls (`+`/`-` buttons) in each terminal panel | |
| - Or use `Cmd/Ctrl + Scroll` to zoom | |
| ### Scrollback | |
| - The terminal maintains a scrollback buffer of recent output | |
| - Scroll up to view previous output | |
| - Output is preserved when reconnecting | |
| ## Architecture | |
| The terminal uses a client-server architecture: | |
| 1. **Frontend** (`apps/ui`): xterm.js terminal emulator with WebGL rendering | |
| 2. **Backend** (`apps/server`): node-pty for PTY (pseudo-terminal) sessions | |
| Communication happens over WebSocket for real-time bidirectional data flow. | |
| ### Shell Detection | |
| The server automatically detects the best shell: | |
| - **WSL**: User's shell or `/bin/bash` | |
| - **macOS**: User's shell, zsh, or bash | |
| - **Linux**: User's shell, bash, or sh | |
| - **Windows**: PowerShell 7, PowerShell, or cmd.exe | |
| ## Troubleshooting | |
| ### Terminal not connecting | |
| 1. Ensure the server is running (`npm run dev:server`) | |
| 2. Check that port 3008 is available | |
| 3. Verify the terminal is unlocked | |
| ### Slow performance with heavy output | |
| The terminal throttles output at ~60fps to prevent UI lockup. Very fast output (like `cat` on large files) will be batched. | |
| ### Shortcuts not working | |
| - Ensure the terminal is focused (click inside it) | |
| - Some system shortcuts may conflict (especially Alt+Shift combinations on Windows) | |