WhosServer

A management environment where AI works beside the user: reading status, spotting risks and preparing actions without manual command typing.

Period
2025
Built
AI product / Server dashboard / Command assist / Monitoring
WhosServer AI assistant and terminal shown on a laptop

The brief

Manage Linux servers with AI that watches along and helps directly.

Daily server management demands context: which machine is this, which services are running, what do the logs say and which command fits this exact situation? Copying commands from documentation without that context takes time and increases the chance of mistakes.

The brief was to create a management environment where AI works beside the real terminal without taking final control away from the user.

How we built it

From product decisions to engineering: these are the parts that make the project work as one system.

  1. Clerk protects REST and real-time traffic

    The React app sends a Clerk JWT to the API. The same identity secures the SignalR hub through an access token, while plan and credit data remain in the internal database.

  2. SSH credentials stay on the backend

    New 4096-bit key pairs are held temporarily in Redis. Private keys, passwords and passphrases are encrypted with AES-256-GCM in PostgreSQL, only after a real SSH test succeeds.

  3. SignalR connects xterm to a real shell

    Each browser connection gets an isolated SSH.NET session keyed by connection ID. Keystrokes and commands go to the shell; output streams only to that user.

  4. Bounded context for the AI

    ANSI noise is removed and at most one hundred recent lines plus OS and kernel details live temporarily in Redis. OpenAI proposes an approach; only clicking Run sends a command to SSH.

  5. Persistent and temporary state stay separate

    The Vite SPA and .NET 9 API run as separate Docker images. PostgreSQL stores accounts and server configuration; Redis is used only for temporary keys, terminal tail, system details and chat context.

From login to a deliberately run command

The browser gets a real terminal experience without ever seeing stored server credentials. Context is built temporarily and per user; execution remains a separate human action.

  1. Clerk and server choice

    A JWT protects API and SignalR; the user selects a server from their own account.

  2. Decryption and SSH

    The backend decrypts the stored credentials and opens SSH.NET; keys stay out of the browser.

  3. SignalR and xterm

    A connection ID links the browser to one real-time SSH.NET ShellStream.

  4. Redis context

    Filtered terminal tail and detected Linux system details remain available for up to 24 hours.

  5. AI proposal and Run

    OpenAI streams explanations and commands; only an explicit user click executes anything.

The result

Less command-line friction in daily server management

WhosServer brings server overview, live terminal and AI assistant together in one session. A user can describe a problem in plain language, review the explanation and proposed command, then decide what actually runs.

That reduces switching between a terminal, documentation and a separate AI chat. Recurring maintenance, deployments and troubleshooting gain more context while the final action deliberately remains with the user.

View the live project whosserver.com