๐ฒ Install as Progressive Web App (PWA)
โจ Why Install as an App?
โ
Works Offline
Access UI even without internet
โ
Faster Loading
Instant startup from cache
โ
Desktop Icon
Launch from Start Menu/Dock
โ
Auto Updates
Always get latest features
๐ฒ
Install Now
Already installed or use browser menu to install
๐ Chrome / Edge / Brave
Click the ๐ฒ Install Now button above
OR click the โ icon in the address bar
Click "Install" to add to your system
The app will appear in your Start Menu/Applications folder
๐ฑ Mobile (Android / iOS)
๐ค Android (Chrome)
Tap the menu button (โฎ) in top-right corner
Select "Add to Home Screen" or "Install app"
Confirm installation
Icon will appear on your home screen
๐ iOS (Safari)
Tap the Share button (โกโ) at the bottom
Scroll down and tap "Add to Home Screen"
Tap "Add" in the top-right
The app icon will appear on your home screen
โ๏ธ Requirements
To use terminals, you need SDK Local Service running:
java -jar sdk-local-service.jar
๐ก Note: The PWA works offline for UI, but terminal features require SLS running on localhost:8088
โ
Verify Installation
App opens in standalone window (no browser UI)
Icon appears in Start Menu / Applications / Home Screen
Can launch even when offline (UI only)
Loads instantly from cache
๐๏ธ Uninstall
Desktop: Right-click app in Start Menu โ Uninstall
Mobile: Long-press icon โ Remove from Home Screen
๐ Local Service Setup
โฌ๏ธ
Download SDK Local Service
Requires Java 11+ โข Run: java -jar
sdk-local-service.jar
โ๏ธ Customize port, database, logging in
application.properties
๐ฅ Downloads from GitHub
- always latest version
๐ Requirement: SDK Local Service must be
running on localhost:8088
Step 1: Start SDK
Local Service
java -jar sdk-local-service.jar
Step 2: Create
Terminal Sessions
Click CMD/Bash/PowerShell to open a
local terminal
Click SSH to add a remote server
connection
Saved connections appear in the left sidebar
Use tabs to manage multiple sessions
Features
๐ป
Local
Terminals
CMD, Bash, PowerShell
๐
SSH
Connections
Save & manage servers
๐
File Browser
File transfer & management
๐ฌ
Remote Collaboration
Share terminals & collaborate live
๐ป Source Code &
Documentation
โจ๏ธ Keyboard Shortcuts
Terminal
Shortcuts
Ctrl+C
Interrupt current command
Ctrl+L
Clear terminal screen
Ctrl+D
Exit terminal (EOF)
โ
/ โ
Navigate command history
Tab
Auto-complete commands/paths
Tab Management
Right-click tab - Context menu (rename,
duplicate, close)
Middle-click tab - Close tab
Drag tab - Reorder tabs
Session Actions
R key - Reconnect to disconnected
session
Right-click connection - Edit,
duplicate, or delete
Base URL: http://localhost:8088
โข
Requires SLS security token (auto-managed)
Terminal Operations
POST
/terminal/create
Create a new terminal session (local or SSH)
// Local terminal:
{ "type": "local", "shell": "bash" }
// SSH terminal:
{ "type": "ssh", "connectionId": 1 }
// With session restore:
{ "type": "local", "shell": "cmd", "sessionId": "uuid" }
POST
/terminal/{sessionId}/input
Send input to terminal
{ "data": "ls -la\n" }
POST
/terminal/{sessionId}/resize
Resize terminal window
{ "cols": 120, "rows": 40 }
GET
/terminal/sessions
Get all active sessions
GET
/terminal/session/{sessionId}
Get session info
DELETE
/terminal/{sessionId}
Close terminal session
WS
/terminal/stream/{sessionId}
WebSocket stream for real-time output
SSH Connection Management
GET
/terminal/ssh-connections
List all saved SSH connections
POST
/terminal/ssh-connections
Save new SSH connection
{
"name": "production-server",
"host": "example.com",
"port": 22,
"username": "admin",
"password": "***"
}
GET
/terminal/ssh-connections/{id}
Get SSH connection by ID
PUT
/terminal/ssh-connections/{id}
Update SSH connection
DELETE
/terminal/ssh-connections/{id}
Delete SSH connection
POST
/terminal/ssh-connections/test
Test SSH connection before saving
{
"host": "example.com",
"port": 22,
"username": "admin",
"password": "***"
}
File System Operations
GET
/filesystem/{terminalSessionId}/list
List files in a directory (path param)
GET /filesystem/abc-123/list?path=/home/user
POST
/filesystem/{terminalSessionId}/read
Read file content
{ "path": "/home/user/file.txt" }
POST
/filesystem/{terminalSessionId}/write
Write file content
{
"path": "/home/user/file.txt",
"content": "base64-encoded-content"
}
POST
/filesystem/{terminalSessionId}/create-file
Create a new file
{ "path": "/home/user/newfile.txt" }
POST
/filesystem/{terminalSessionId}/create-directory
Create a new directory
{ "path": "/home/user/newfolder" }
POST
/filesystem/{terminalSessionId}/delete
Delete file or directory
{ "path": "/home/user/oldfile.txt" }
POST
/filesystem/{terminalSessionId}/rename
Rename/move file or directory
{
"oldPath": "/home/user/old.txt",
"newPath": "/home/user/new.txt"
}
Notes Management
GET
/api/notes
Get all notes
GET
/api/notes/{id}
Get specific note by ID
POST
/api/notes
Create a new note
{
"title": "My Note",
"content": "# Note content",
"shared": false
}
PUT
/api/notes/{id}
Update an existing note
DELETE
/api/notes/{id}
Delete a note
GET
/api/notes/shared
Get all shared notes
Authentication
POST
/auth/token
Generate security token for web clients
{
"origin": "http://localhost:8080",
"expiryHours": 24
}
POST
/auth/validate
Validate security token
{ "token": "your-token-here" }
System
GET
/health
Health check endpoint (no auth required)
// Response:
{
"status": "UP",
"service": "SDK Local Service",
"version": "1.0.0",
"uptime": "2h 15m"
}
๐ Important Notes
Security Token: Most endpoints require an X-Security-Token header (auto-managed by UI)
File System: Auto-creates sessions based on terminal session ID
WebSocket: Use binary frames for terminal output, text frames for control messages
Session Restore: Include sessionId in create request to restore previous session
Base64 Encoding: File content must be base64-encoded in write operations
๐ References
๐ก Need Help?
Check the status indicator in the top-right corner. If SDK Local Service is offline, make sure
it's running on localhost:8088