A browser-based Linux management panel: file management, system monitoring, web terminal, and service management.
- One-command start:
clawos start, then manage everything in the browser - File management: upload/download, drag-and-drop upload, batch operations, trash, search
- System & services: processes, systemd, Docker, network, disks, GPU (optional)
- Built-in tools: Git, editor, log viewer, task queue
- Linux with systemd user services (
systemctl --user) - Python 3.9+
pip install clawosclawos startOpen in your browser:
Check the login password:
clawos status
clawos passwordStop the service:
clawos stop![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- API: docs/api.md
- Protocol: docs/PROTOCOL.md
- Discord: https://discord.gg/4PW8pEazm
- QQ Group: 485345801 (scan to join)
Issues and pull requests are welcome.
- Password-based authentication
- Session management
- Path traversal protection
- File operation permissions
- Symlink safety checks
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ClawOS Architecture β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Browser Client β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β β β File Browser β β Terminal β β Sys Monitor β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β HTTP / WebSocket (REST API) β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Flask Server β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β β β Blueprints β β Socket.IO β β Auth β β β
β β βββββββββββββββ βββββββββββββββ βββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Service Controllers β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β β β Files β β System β β Git β β Docker β β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β β β FRP β β Clash β βOpenClawβ β Terminalβ β β
β β ββββββββββ ββββββββββ ββββββββββ ββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β β
β βββββββββββββββββΌββββββββββββββββ β
β βΌ βΌ βΌ β
β ββββββββββββββββ βββββββββββββ ββββββββββββββββ β
β β Local FS β β systemd β β External Svcs β β
β ββββββββββββββββ βββββββββββββ ββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- Hierarchical navigation
- Upload/download (drag-and-drop supported)
- Create folders, rename, move, delete, clone
- Multi-select operations
- Batch operations (copy/move/delete)
- Trash and restore
- File search and filtering
- Symlink detection and handling
- Broken symlink visualization
- JSON editor: syntax highlighting, validation, tree/text/table modes
- YAML/TOML editor: Monaco Editor
- Markdown preview: live rendering
- Code editor: multi-language support
- Config editors: INI/CONF/XML support
- Full xterm.js terminal emulator
- Socket.IO real-time transport
- Command history navigation
- Session persistence
- CPU usage and memory statistics
- Process list (sortable)
- Disk usage
- Network interface stats
- GPU info (NVIDIA)
- Docker container management
- systemd service management
βββββββββββββββββββββββββββββββββββββββ
β π FRP Tunnel β
βββββββββββββββββββββββββββββββββββββββ€
β Service status: β Running β
β β
β Server: your-frp-server:17777 β
β β
β Proxies: β
β - test-tcp (22 β 6022) β
β - http (80 β 6080) β
β - 18789 (18789 β 18789) β
β - 5001 (5001 β 15001) β
β - 6002 (6002 β 6002) β
β β
β [Start] [Stop] [Restart] β
β [Edit Config] β
βββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
β π Clash Proxy β
βββββββββββββββββββββββββββββββββββββββ€
β Service status: β Running β
β β
β Port: 7890 (mixed port) β
β β
β π‘ Subscription β
β [Enter URL] [Update] β
β β
β π― Proxy Groups β
β - Example Group β HK 01 β
β - Auto Select β HK 02 β
β β
β π‘ Nodes: 12 β
β π Rules: 514 β
βββββββββββββββββββββββββββββββββββββββ
- Gateway status monitoring
- Agent management
- Channel configuration
- Skills installation tracking
- Health diagnostics
- Repository browser
- Branch management
- Commit history viewer
- Diff visualization
- Status bar integration
- Linux with systemd user services (
systemctl --user) python3,pip3,git,openssl
The installation script assumes the source directory is ~/clawos by default.
git clone https://github.com/mrytsr/clawos.git ~/clawos
cd ~/clawosbash install.shThe script will:
- Install Python dependencies when needed (e.g. run
pip3 install -r ~/clawos/requirements.txtif Flask is missing) - Create the data directory:
~/.local/clawos - Generate a random password:
~/.local/clawos/clawos_password.json - Install the CLI to:
/usr/local/bin/clawos - Write the systemd user unit:
~/.config/systemd/user/clawos.service - Enable and start the service via
systemctl --user
- Web UI:
http://127.0.0.1:6002/ - Password:
clawos statusorcat ~/.local/clawos/clawos_password.json - Logs:
journalctl --user -u clawos -f
clawos start|stop|restart|status|log|enable|disable|password- If you don't have write permission to
/usr/local/bin, changeBIN_FILEininstall.shto~/.local/bin/clawos(ensure~/.local/binis inPATH) and rerun the script. - On headless servers, user services may stop after logout; enable linger if you need it:
loginctl enable-linger $USER
clawos start # Start the service (installs systemd unit on first run)
clawos -h # Show help
clawos status # Show status
clawos stop # Stop the service
clawos restart # Restart the service
clawos log # View logs
clawos uninstall # Uninstall (stop + remove systemd unit, then pip uninstall)| Endpoint | Method | Description |
|---|---|---|
/api/file/list |
GET | List directory contents |
/api/file/info |
GET | Get file/directory info |
/api/file/read |
GET | Read file content |
/api/file/save |
POST | Write file content |
/api/file/create |
POST | Create file/folder |
/api/file/move |
POST | Move/rename file |
/api/file/delete |
POST | Delete file |
/api/file/copy |
POST | Copy file |
/api/trash/list |
GET | List trash contents |
/api/trash/restore |
POST | Restore from trash |
| Endpoint | Method | Description |
|---|---|---|
/api/process/list |
GET | List running processes |
/api/disk/list |
GET | List disk usage |
/api/network/list |
GET | List network interfaces |
/api/gpu/info |
GET | GPU information |
/api/system/exec |
POST | Execute system command |
| Endpoint | Method | Description |
|---|---|---|
/api/systemd/list |
GET | List systemd services |
/api/systemd/control |
POST | Control service (start/stop/restart) |
/api/docker/containers |
GET | List Docker containers |
/api/docker/container/start |
POST | Start container |
/api/docker/container/stop |
POST | Stop container |
| Endpoint | Method | Description |
|---|---|---|
/api/frp/config |
GET | Get FRP configuration |
/api/frp/config |
POST | Save FRP configuration |
| Endpoint | Method | Description |
|---|---|---|
/api/clash/state |
GET | Get Clash status |
/api/clash/proxies |
GET | Get proxy list |
/api/clash/subscribe |
POST | Update subscription |
/api/clash/switch |
POST | Switch proxy node |
| Endpoint | Method | Description |
|---|---|---|
/api/git/repos |
GET | List git repositories |
/api/git/status |
GET | Get repository status |
/api/git/log |
GET | Get commit history |
/api/git/diff |
GET | Get diff output |
clawos/
βββ app.py # Flask application entry point
βββ config.py # Configuration settings
βββ requirements.txt # Python dependencies
βββ package.json # Node.js dependencies
β
βββ ctrl/ # Flask blueprints (controllers)
β βββ api_ctrl.py # Generic API utilities
β βββ auth_ctrl.py # Authentication
β βββ batch_ctrl.py # Batch operations
β βββ browser_ctrl.py # File browser API
β βββ clash_ctrl.py # Clash proxy management
β βββ edit_ctrl.py # File editing
β βββ file_ctrl.py # File operations
β βββ frp_ctrl.py # FRP management
β βββ git_ctrl.py # Git integration
β βββ openclaw_ctrl.py # OpenClaw integration
β βββ system_ctrl.py # System monitoring
β βββ task_ctrl.py # Task management
β βββ term.py # Terminal socket handler
β
βββ lib/ # Utility modules
β βββ ai_client.py # AI assistant client
β βββ disk_utils.py # Disk utilities
β βββ docker_utils.py # Docker utilities
β βββ email_utils.py # Email utilities
β βββ file_utils.py # File utilities
β βββ git_utils.py # Git utilities
β βββ json_utils.py # JSON utilities
β βββ network_utils.py # Network utilities
β βββ packages_utils.py # Package management
β βββ path_utils.py # Path utilities
β βββ process_utils.py # Process utilities
β βββ systemd_utils.py # systemd utilities
β
βββ static/ # Static assets
β βββ js/
β β βββ bot.js # AI assistant
β β βββ file_browser.js # File browser
β β βββ file_clipboard.js # Clipboard operations
β β βββ globals.js # Global utilities
β β βββ git.js # Git integration
β β βββ preview.js # File preview
β β βββ system_monitor.js # System monitoring
β β βββ task_actions.js # Task actions
β β βββ task_poller.js # Task polling
β β βββ terminal.js # Terminal
β βββ css/ # Stylesheets
β
βββ templates/ # HTML templates
β βββ index.html # Main application
β βββ login.html # Login page
β βββ trash.html # Trash management
β βββ json_editor.html # JSON editor
β βββ yaml_editor.html # YAML/TOML editor
β βββ markdown.html # Markdown preview
β βββ code_editor.html # Code editor
β βββ git_commit.html # Git commit viewer
β βββ ...
β
βββ data/ # Runtime data
β βββ conversations.json # Chat history
β βββ trash/ # Trash directory
β
βββ README.md # This file
- Default credentials: Change the password immediately after installation
- Network exposure: Do not expose ClawOS directly to the public internet
- Use HTTPS: Put it behind a reverse proxy with HTTPS (Nginx/Caddy)
- Terminal access: The web terminal can execute arbitrary commands; grant access carefully
- File operations: All file operations are logged
βββββββββββββββββββ
β Nginx/Caddy β
β (HTTPS + Auth) β
ββββββββββ¬βββββββββ
β
ββββββββββΌβββββββββ
β ClawOS (LAN) β
β http://:6002 β
βββββββββββββββββββ
MIT License - see LICENSE for details.










