Inspiration
After purchasing a server with only two CPU cores and 1 GB of memory, I wanted to deploy an AI agent to help with development tasks and server maintenance. However, the limited memory made it difficult to run modern AI agent frameworks reliably. This inspired me to build SSH Mobile: a cross-platform application that runs the AI agent on the user’s local device while allowing it to remotely inspect and manage low-resource servers through SSH. This approach avoids consuming valuable server memory while still providing AI-assisted operations.
What it does
SSH Mobile combines an SSH terminal, SFTP file manager, server monitoring dashboard, and AI operations assistant in one application. Users can: Connect to Linux or Windows servers through SSH Manage multiple terminal sessions Upload, download, preview, and edit remote files through SFTP Monitor ports, services, applications, and system performance Ask an AI assistant to diagnose problems and perform server-related tasks Review and approve sensitive tool operations before execution Store credentials securely and verify SSH host keys Use a local MCP server with tools such as Codex, Claude Code, and Gemini CLI
How we built it
SSH Mobile was built with Flutter and Dart, allowing us to support Android, iOS, Windows, macOS, and Web from a shared codebase. The application follows a feature-first MVVM architecture. ViewModels manage application state, while independent services handle SSH connections, SFTP operations, server monitoring, secure storage, AI orchestration, and MCP communication. During development, we used Codex and Gemini as AI-assisted programming tools. They helped us design features, analyze architectural decisions, debug issues, review code, generate tests, and improve documentation. However, all generated code and suggestions were reviewed, tested, and adapted to match the project’s security and reliability requirements. Remote server communication is implemented through SSH and SFTP protocol adapters. Local application data is stored with Drift, while credentials and sensitive values are protected using platform secure storage and encrypted database fields. The built-in AI agent supports OpenAI-compatible APIs, streaming responses, conversation history, context compression, tool calling, and approval-controlled command execution.
Challenges we ran into
One major challenge was maintaining stable SSH sessions on mobile devices. Mobile operating systems may suspend background processes, change networks, or terminate applications to conserve battery. We addressed this with lifecycle handling, connection health checks, Android foreground-service support, and optional tmux integration. Another challenge was safely allowing an AI model to operate a real server. Tool calls can be destructive, so the application needed approval gates, command restrictions, secret redaction, host-key verification, and detailed operation logs. Building a responsive interface for both small mobile screens and desktop environments was also difficult. We created adaptive navigation, screen-size breakpoints, reusable layouts, and mobile-specific interface metrics.
Accomplishments that we're proud of
We are proud that SSH Mobile has grown beyond a basic SSH terminal into a complete remote operations workspace. The project now includes multi-window terminals, advanced SFTP operations, server monitoring, AI tool execution, encrypted storage, local MCP support, backup and restore, adaptive layouts, and cross-platform builds. We also established automated analysis, testing, coverage checks, deterministic code generation, and CI build pipelines. The project currently contains hundreds of automated tests covering ViewModels, storage migrations, protocol parsing, security policies, AI streaming, and tool execution.
What we learned
We learned that building an AI agent is not only about connecting a language model to tools. A reliable agent also requires permission boundaries, observable execution, error recovery, secure credential handling, and clear separation between model decisions and system actions. We also gained practical experience with SSH protocols, asynchronous streaming, cross-platform application architecture, encrypted persistence, responsive UI design, automated testing, and continuous integration. Most importantly, we learned that AI workloads do not always need to run on the server they manage. Moving the AI reasoning layer to the client makes intelligent server management possible even for inexpensive, low-memory machines.
What's next for SSH Mobile & AI Agent
Next, we plan to improve long-running task reliability, reconnect interrupted sessions automatically, and provide more detailed execution progress for AI operations. We also want to expand the agent with reusable playbooks, retrieval-augmented knowledge bases, scheduled maintenance tasks, stronger command risk analysis, multi-server workflows, and improved support for local and self-hosted language models. Our long-term goal is to turn SSH Mobile into a secure, portable AI operations platform that allows developers to manage servers from any device, regardless of the server’s hardware limitations.
Log in or sign up for Devpost to join the conversation.