NexusCtrl
NexusCtrl is a personal RDP server management and monitoring platform built with FastAPI and Python agents. It provides real-time system metrics, live screen monitoring, remote process control, and task management through a local-first dashboard designed for securely managing multiple remote machines from a single control center.
Install / Use
/learn @Twiddllo/NexusCtrlREADME
NexusCtrl - Personal RDP Server Management Tool
⚠️ Important Security Notice
If you expose the backend endpoint, restrict access to trusted IP addresses only. Use firewall rules, a reverse proxy, or VPN/SSH tunneling to whitelist specific IPs. Never leave the port publicly accessible, or unauthorized users could gain control of your servers.
About This Project
This is a personal project I built to help manage multiple RDP servers more easily. I'm not particularly skilled at frontend development, so this is primarily a backend-focused tool with a functional interface for monitoring and controlling my servers. It started as a test for myself but became quite useful for managing multiple RDP connections.
🎬 Preview
Setup Process

NexusCtrl Dashboard View

Features
Server Monitoring
- Real-time CPU, RAM, and network usage tracking
- Live screen capture from connected agents
- Active process monitoring with kill capability
- Performance history usage
Task Management
- Create and manage tasks
- Set priorities (critical, high, medium, low)
- Track task completion status
Server Control
- View active processes
- Terminate processes remotely
- Monitor server status (online/offline)
Agent Capabilities
- Runs as a background service on target machines
- Collects system metrics (CPU, RAM, network, processes)
- Captures screen for remote viewing
- Responds to remote commands (like killing processes)
🚀 CI/CD
This project uses GitHub Actions for automated testing, security scanning, and staged deployment.
- Backend tested on Python 3.8–3.11
- Frontend tested on Node.js 18–22
- Linting (flake8 & ESLint)
- Dependency vulnerability scanning (safety)
- Secret scanning (TruffleHog)
- CodeQL analysis
- Dev → Prod staged deployment on push to main
Workflows are located in:
.github/workflows/
How It Works
The system consists of two parts:
- Backend Server (written in Python/FastAPI) - runs on your main control machine
- Agent (written in Python) - runs on each server you want to monitor
The agent connects to the backend via WebSocket and continuously sends system metrics. The frontend provides a dashboard to view this information and send commands.
Prerequisites
- Python 3.8+
- Node.js and npm (for the frontend)
- Windows/Linux/macOS (agent works on all platforms)
Installation & Setup
Backend Setup
- Clone the repository
- Navigate to the backend directory
- Install Python dependencies:
pip install -r requirements.txt - Set up environment variables in
.envfile:SECRET_KEY=your-very-secure-secret-key AGENT_SECRET=your-agent-authentication-secret
Frontend Setup
- Navigate to the frontend directory
- Install dependencies:
npm install - Start the development server:
npm run dev
Running the Application
-
Start the backend server:
cd backend python app.pyOr with uvicorn:
uvicorn app:app --reload --host 127.0.0.1 --port 8000 -
Start the frontend:
cd frontend npm run dev -
Run the agent on each server you want to monitor:
cd backend python agent.pyMake sure to update the
BACKEND_URLinagent.pyto match your backend server's address.
Security Configuration
By default, the backend server listens on 127.0.0.1:8000. This is intentional for security. Do NOT expose this port publicly. If you need remote access, use VPN or SSH tunneling.
The CORS configuration in app.py should be reviewed to only allow origins you trust:
CORS_ORIGINS: list[str] = ["http://localhost:5173", "http://localhost:3000"]
Usage
- Access the frontend at
http://localhost:5173(or wherever your frontend is hosted) - The dashboard will show connected servers and their metrics
- Use the Process Manager to view and kill processes
- Manage tasks using the task manager panel
- View live screen feeds from your servers
Limitations & Considerations
- This is a personal project, not enterprise-grade software
- Frontend design is basic and functional rather than polished
- Designed for single-user personal use
- Requires Python on monitored servers to run the agent
- Screen capture feature may not work on some locked sessions (expected behavior)
Customization
You can modify:
- The agent to collect different metrics
- The frontend to display additional information
- The backend to store data differently
- Authentication mechanisms to fit your needs
Troubleshooting
- If agents can't connect: Check that the
BACKEND_URLin agent.py matches your server address - If screen capture fails: This is expected on locked sessions or with certain security configurations
- If metrics aren't updating: Check WebSocket connections and firewall settings
License
Personal project for educational purposes. If using this code, please respect any applicable licenses for the dependencies used.
Related Skills
canvas
349.9kCanvas Skill Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android). Overview The canvas tool lets you present web content on any connected node's canvas view. Great for: -
tmux
349.9kRemote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
claude-opus-4-5-migration
109.8kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
model-usage
349.9kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
