Terminal, files, and SSH

Your Genie server is a real Linux machine. You get full shell access, a persistent filesystem, and SSH connectivity — not a sandboxed environment or simulation. This article covers all the ways to interact with your server's system.

Written By Deva

Last updated About 2 months ago


In-Browser Terminal

Opening the Terminal

In Pro Mode, navigate to Terminal from the sidebar. A full Linux shell opens in your browser — no software to install.

What It Is

A real terminal session powered by xterm.js connected to your server via WebSocket. Everything you'd expect from a proper terminal:

  • Full ANSI color support and VT100 rendering

  • Clickable URLs in output

  • Copy and paste (⌘C/⌘V or Ctrl+C/Ctrl+V)

  • Auto-resize when you change browser window size

  • Multiple concurrent sessions

What You Can Do

Anything. It's a full Ubuntu Linux shell:

# Install packages sudo apt install -y python3-pip nginx redis-server # Run development servers npm run dev # Deploy applications git clone https://github.com/your/app.git cd app && docker compose up -d # Monitor system resources htop df -h free -m # Manage services sudo systemctl start nginx pm2 start server.js # Use tmux/screen for persistent sessions tmux new -s dev 

Terminal + AI

Your Genie's chat and terminal share the same server. When you ask your Genie to "install Node.js," it runs the commands in the same environment you access via terminal. You can watch commands execute in the terminal while chatting, or switch between manual and AI-driven workflows.


File System

Your Workspace

All your files live at /home/ubuntu/workspace/ — persistent storage that survives server restarts, updates, and session changes. This is where your Genie reads and writes files too.

File Browser (Web UI)

Navigate to Files from the sidebar:

  • Browse directories — Click to navigate, breadcrumbs to go back

  • Upload files — Drop files from your local machine directly to the current directory

  • Download files — Click any file to download it

  • View files — Built-in viewer for text, code, and common formats

  • Create/delete/rename — Full file management operations

File Operations via Chat

Your Genie can manage files through conversation:

"Show me what's in the projects directory"

"Create a backup of config.yaml before I change it"

"Find all Python files that import requests"

"Upload the CSV I sent you to the data directory and parse it"

AI-Aware File System

Your Genie doesn't just store files — it understands them. Ask it to:

  • Explain any file on the server

  • Refactor code files

  • Generate new files based on existing patterns

  • Search across your entire workspace

  • Organize files into logical directory structures


SSH Access

For power users who want to connect from their own terminal, IDE, or CI/CD pipeline.

Adding Your SSH Key

  1. Go to Settings → Server → SSH Keys.

  2. Click Add SSH Key.

  3. Paste your public key (ED25519 or RSA).

Generate a new key if needed:

# ED25519 (recommended) ssh-keygen -t ed25519 -C "your-email@example.com" # RSA ssh-keygen -t rsa -b 4096 -C "your-email@example.com" 

Your public key: ~/.ssh/id_ed25519.pub or ~/.ssh/id_rsa.pub.

Connecting

ssh user@your-genie-hostname 

The exact hostname and username are shown in your Settings page.

SSH Use Cases

  • IDE remote development — VS Code Remote SSH, JetBrains Gateway, etc.

  • Persistent sessions — Run tmux over SSH for long-lived workflows

  • CI/CD automation — Deploy to your Genie server from GitHub Actions or other pipelines

  • File transferscp or rsync files to/from your server

Security Note

SSH key operations require step-up authentication (2FA) for security. Keys can be revoked at any time from Settings.


Agent Sandboxes

Your Genie can create isolated execution environments using Firecracker microVMs — lightweight virtual machines for running code safely.

What Are Sandboxes?

Sandboxes are temporary, isolated VMs that:

  • Have their own CPU, memory (256 MB – 1024 MB), and disk (512 MB)

  • Auto-destroy after a configurable TTL (2–30 minutes)

  • Get a public URL for access

  • Are completely isolated from your main server

When Does Your Genie Use Them?

  • Running untrusted or experimental code

  • Testing in a clean environment

  • Executing resource-intensive tasks without affecting the main server

  • Creating temporary development environments

Viewing Sandboxes

Go to System → Sandboxes to see active sandboxes, their resource allocation, TTL, and public URLs.


Device Pairing

Access your Genie server from multiple devices:

  1. Sign in on the new device.

  2. A pairing request appears in your Settings.

  3. Approve from your primary device.

  4. Both devices connect to the same server.

Manage paired devices in Settings → Connected Devices — approve, reject, or unpair at any time.


System Monitoring

The System tab in Pro Mode shows real-time server metrics:

MetricDetails

CPU

Core count, clock speed, current load

Memory

Used vs. total RAM

Disk

Used vs. total storage

Network

Speed test, connectivity status

OS

Linux version, kernel info

Processes

Running process count

Uptime

How long the server has been running

Server Health

Your dashboard shows health status:

  • Healthy — Everything running normally

  • Degraded — Some services may be slow

  • Offline — Server not responding (check if it's stopped or hibernating)

Free-tier servers use heartbeat monitoring — after 3 consecutive failures, the server is marked unhealthy.


Tips

  • Terminal for manual work, chat for AI-driven work. Use both — they share the same environment.

  • SSH for IDE integration. Connect VS Code or JetBrains to your Genie for a familiar dev experience with AI superpowers.

  • Use tmux over SSH for persistent terminal sessions that survive disconnections.

  • Watch System metrics before running resource-intensive tasks — make sure you have headroom.

  • Sandboxes for experimentation. Tell your Genie to "run this in a sandbox" to keep your main server clean.