OpsAI is an AI desktop built directly into the Panelica panel: a ROOT-only feature that runs a coding agent of your choice as an isolated system user, with its own terminal, a live browser it can control, and a Telegram bridge, so you operate the server from inside the same product instead of wiring up an external client.
What Is OpsAI?
OpsAI is the panel feature named "Ops AI" — a windowed desktop that lives inside Panelica itself, built around a terminal running a coding agent, plus a live browser window the same agent can control, an update app that keeps the installed provider CLIs current, and a tools app. It is not a chat widget bolted onto the dashboard; the terminal it opens runs a real coding agent — Claude Code, Codex CLI, Gemini CLI or Cursor Agent, whichever you install — the same kind of agent you might already run on your own workstation, pointed instead at the server the panel itself is running on.
Access is gated behind the license feature ops_ai and restricted to the ROOT role. It does not replace the Panelica MCP Server, which connects external clients to a panel from outside over a scoped API key — OpsAI is the panel's own embedded surface, with a different security model built around process isolation rather than API scoping. The comparison between the two is covered in full further down.
The OpsAI window: the title bar names the active expert and provider ("general · Cursor Agent · Running"); underneath is the real Cursor Agent terminal interface, unmodified.
Where Does OpsAI Run, and Who Can Use It?
Every OpsAI session — regardless of which of the four providers is driving it — runs as claude-runner, an isolated system user created specifically for this purpose rather than running as root or as the panel's own service account. That single design choice is what lets OpsAI give an agent a real terminal instead of a fixed tool catalogue: the blast radius of anything the agent does is bounded by what the claude-runner user can reach, not by what root could reach, regardless of which provider or which expert is active.
Each provider gets its own working directory per purpose and its own context file — CLAUDE.md for Claude Code, AGENTS.md for Codex CLI, GEMINI.md for Gemini CLI — pre-loaded with the panel's own operational playbook, so a session starts already knowing how the panel is laid out instead of discovering it turn by turn.
Why Does Each Provider Get Its Own Context File?
A coding agent that opens a terminal cold has to spend its first several turns figuring out what kind of server it is looking at before it can do anything useful — where services live, what the panel's own conventions are, which directories are safe to touch. OpsAI avoids that by writing the panel's playbook into the exact file each provider already reads automatically at the start of a session: Claude Code reads CLAUDE.md, Codex CLI reads AGENTS.md, Gemini CLI reads GEMINI.md. This is a convention each provider already supports on its own for any project; OpsAI simply keeps the right file populated and current in the working directory it hands the agent, so the very first prompt in a session is already operating with panel-specific context instead of generic sysadmin assumptions. Separating working directories by purpose keeps a session focused on the task it was opened for rather than accumulating unrelated state across unrelated jobs.
Which AI Providers Can I Install Inside OpsAI?
OpsAI does not ship with a single, fixed model. You pick from a provider picker, install any of the four, and choose one as your default; every provider gets the same window, the same terminal, and the same 19 built-in experts.
The provider picker: install status and sign-in status per provider, independent of which one is set as default.
| Provider | Login | Permission modes |
|---|---|---|
| Claude Code | Interactive login | default, acceptEdits, plan |
| Codex CLI | Device-code login (URL and code, no browser needed on the server) or a pasted API key | full, readOnly |
| Gemini CLI | Interactive auth dialog or an API key | full, readOnly |
| Cursor Agent | Login or an API key | full |
Claude Code additionally exposes a choice of models — sonnet, opus or haiku — plus an adjustable effort setting; the other three do not expose a model picker inside OpsAI. Because the device-code flow for Codex CLI does not need a browser running on the server itself, and Claude Code, Gemini CLI and Cursor Agent all offer either an interactive login or a plain API key, none of the four require you to expose a desktop browser session on the machine just to authenticate.
Permission modes are where the four providers differ most in how cautious a session can be. Claude Code's plan mode and Codex CLI's or Gemini CLI's readOnly mode both keep a session in investigate-and-propose territory rather than letting it change anything; Claude Code's acceptEdits mode sits in between, applying file edits automatically while still asking before broader actions; default and full are each provider's normal, unrestricted operating mode. Cursor Agent currently offers only full inside OpsAI, so a restricted-mode session with Cursor Agent is not available the way it is with the other three.
How Does the Provider Picker and Background Install Work?
Installing a provider is a background job, not a console command — the picker shows a live step list while it runs. This is the real step list the panel shows while installing Cursor Agent, with each step's actual status:
The first two steps show "skipped" here because Node.js and Cursor Agent were already present on this panel from an earlier install; on a first-time install for a given provider those two steps run instead of skipping. The picker itself shows, at a glance, which providers are already installed and which are signed in, so switching your default provider or adding a second one for comparison does not mean repeating the whole setup from scratch.
What Are the 19 Built-in Experts?
Every provider you install gets the same set of 19 experts — focused personas that scope a session to one area of the panel, each with its own quick-start prompts so you are not starting from a blank terminal.
| Expert | Focus |
|---|---|
| General Assistant | General server management assistant |
| Domain Expert | DNS, SSL certificates, virtual hosts |
| Security Expert | Firewall, malware scanning, WAF |
| Email Expert | Postfix, Dovecot, DKIM/SPF |
| Database Expert | PostgreSQL, MySQL optimization |
| WordPress Expert | WP-CLI, plugins, themes, cache |
| System Expert | Services, disk, CPU, backups |
| Docker Expert | Containers, images, volumes, compose |
| Backup Expert | Backup, restore, snapshots, schedules |
| Git Expert | Repositories, branches, deployments |
| Cloudflare Expert | DNS proxy, cache, SSL, zones |
| FTP Expert | FTP users, quotas, transfers |
| SSH Expert | SSH users, keys, configuration |
| Cron Jobs Expert | Scheduled tasks and automation |
| Migration Expert | Panel-to-panel migration, cPanel/Plesk/DirectAdmin imports |
| Performance Expert | Tuning, caching, slow requests, resource hogs |
| Incident Responder | Outages, 502s, crash triage, restart order |
| Monitoring Expert | Metrics, alerts, resource trends |
| File Manager Expert | Files, permissions, disk usage |
Picking an expert before you start a task narrows the session's framing without narrowing what the underlying provider can actually do — the Incident Responder and the General Assistant have access to the same panel, the expert just changes what the session assumes you are trying to accomplish first.
What Does a Typical OpsAI Session Look Like?
Opening OpsAI presents the provider picker first if more than one provider is installed, then the expert list. Picking an expert opens a terminal already primed with that expert's context and quick-start prompts, running as claude-runner in its own working directory — the same real terminal interface shown above, for whichever provider is active. When a task benefits from seeing rather than reading — confirming a page actually renders, watching a multi-step admin flow — the same session can open the live browser window alongside the terminal, and you watch both update together instead of reading a text summary of what happened after the fact.
What Does the Live Browser Do?
Alongside the terminal, OpsAI gives its agent a real, visible browser window — driven through the Playwright MCP connection set up during provider install, and displayed back to you over Xvfb and noVNC so you can watch it navigate in real time rather than trust a text description of what it did. This matters for anything that is easier to verify visually than to describe: checking that a site actually renders correctly after a change, confirming a WordPress admin screen shows what a fix claims it fixed, or watching a multi-step web flow the agent is driving instead of taking its word for the outcome.
How Do I Reach OpsAI From Telegram?
The same agent and the same provider you use inside the panel's desktop can also be reached from Telegram, using a bot token entered in OpsAI's Telegram integration settings. This turns operational work into something your team can trigger from a chat app already open on a phone, without anyone needing to log into the panel first — useful specifically for the kind of alert that shows up outside normal working hours, where the friction of opening a laptop and signing into the panel is itself part of the delay. A dedicated safe mode runs the Telegram-connected session in a plan or read-only permission mode, so a message sent to the bot can be used for investigation and diagnosis without risking a destructive action from a context where a confirmation dialog is not practical. Bot tokens themselves are redacted from logs and error output, so a Telegram integration failure does not leak the credential into a log file anyone with log access could read.
How Does OpsAI Differ From the Panelica MCP Server?
Both let an AI agent operate a Panelica server; they sit on opposite sides of the panel's boundary and answer different needs.
| Aspect | OpsAI | Panelica MCP Server |
|---|---|---|
| Where it runs | Inside the panel, as the isolated claude-runner system user | Outside the panel, on whatever machine your MCP client runs on |
| How it authenticates | Panel session, ROOT role, license feature ops_ai | A scoped, HMAC-signed API key you generate and control |
| What it can reach | The full server the panel manages, through a real terminal and browser | Exactly the External API endpoints its key's scopes allow |
| Where you use it from | The panel's own desktop, or Telegram | Claude Code, Claude Desktop, Cursor, Codex CLI, or any MCP-aware client you already use |
| Natural fit | Operational work done by whoever already has ROOT on the panel | Development-adjacent work done from tools your team already has open |
In practice the two are complementary rather than competing: the Panelica MCP Server is how you connect a client you already work in — Claude Code, Cursor, Codex CLI — to the panel's structured API from outside, scoped narrowly to a task. OpsAI is for when you want the agent to have the same terminal-and-browser access a person with ROOT would have, run inside the panel itself, reachable from the panel's desktop or from a Telegram group where the rest of your team's alerts already land. A team that already issues scoped API keys for deploy automation and also wants a ROOT-level operator on call is a natural candidate for running both side by side rather than choosing one.
Example Tasks by Expert
Each expert ships with its own quick-start prompts; the table below shows one from each.
| Expert | Example prompt |
|---|---|
| General Assistant | "Show server status overview" |
| Domain Expert | "Diagnose SSL certificate issues" |
| Security Expert | "Run a security audit" |
| Email Expert | "Verify DKIM/SPF/DMARC records" |
| Database Expert | "Find slow queries" |
| WordPress Expert | "Check WordPress security" |
| System Expert | "Review backup status" |
| Docker Expert | "Deploy an app from template" |
| Backup Expert | "Check backup chain health" |
| Git Expert | "Show recent deployments" |
| Cloudflare Expert | "Purge cache for a domain" |
| FTP Expert | "Check active FTP sessions" |
| SSH Expert | "View SSH login history" |
| Cron Jobs Expert | "Check cron execution logs" |
| Migration Expert | "Run a migration health-check for a source server" |
| Performance Expert | "Check PHP-FPM pool saturation per site" |
| Incident Responder | "A site returns 502 — find the cause and fix it" |
| Monitoring Expert | "Which users are closest to their resource limits?" |
| File Manager Expert | "Find largest files on server" |
The Incident Responder's prompt is a good illustration of what makes OpsAI different from a scoped API client: finding the cause of a 502 and fixing it is not one API call, it is a terminal-driven investigation — checking which upstream is failing, reading the relevant service's logs, deciding on a restart order, and confirming the site recovers — the kind of multi-step session a real terminal and a real browser are suited to in a way a fixed tool catalogue is not.
What Is the Security Posture of OpsAI?
OpsAI's security model is built around isolating the agent's process rather than scoping an API token, since a terminal has categorically more reach than a fixed set of API calls. Every session, regardless of provider, runs as the dedicated claude-runner system user rather than root or the panel's own service account. Three of the four providers offer a restricted permission mode you can choose deliberately — Codex CLI and Gemini CLI both support a readOnly mode, and Claude Code supports a plan mode — for sessions where you want the agent to investigate and propose without being able to change anything, which pairs naturally with the Telegram bridge's safe mode for exactly that reason. Credentials the bridge depends on, specifically Telegram bot tokens, are redacted from logs and error output rather than appearing in plaintext if something in that integration fails. Access to OpsAI at all requires both the ROOT role and the licensed ops_ai feature, so it is not something a lower-privileged account on the same panel can reach.
full mode. If you want investigate-only sessions as a matter of routine, install Claude Code, Codex CLI or Gemini CLI alongside it.
What Are OpsAI's Honest Limits Today?
Claude Code is the most thoroughly exercised of the four providers inside OpsAI. Gemini CLI and Cursor Agent are fully supported install-and-run options with the same window, terminal, browser and expert set as the other two, but their day-to-day chat quality inside OpsAI specifically has not been benchmarked, and no result or comparison should be assumed for either — describe them by what they do, not by how well they do it, until that changes. If you are choosing a first provider to install and do not have a strong existing preference, Claude Code and Codex CLI are the two with the most operational history behind them inside OpsAI today.
Frequently Asked Questions
What is OpsAI in one sentence?
An AI desktop built into the Panelica panel — a terminal running your choice of Claude Code, Codex CLI, Gemini CLI or Cursor Agent as an isolated system user, plus a live browser and a Telegram bridge, restricted to the ROOT role.
Do I need to install anything outside the panel to use OpsAI?
No — installation of whichever provider you choose happens from inside the panel itself, as a background job you can watch step by step.
Can a non-ROOT account open OpsAI?
No. OpsAI is gated to the ROOT role and requires the licensed ops_ai feature.
Which provider should I install first?
Any of the four installs the same way and gets the same window, terminal, browser and 19 experts. Claude Code and Codex CLI have the most operational history behind them inside OpsAI as of today; Gemini CLI and Cursor Agent are fully supported but their day-to-day results inside OpsAI have not been benchmarked.
Can I install more than one provider and switch between them?
Yes — the provider picker shows what is already installed and signed in, and you choose a default without needing to reinstall a provider you already set up.
What happens if I do not want the agent to change anything, just investigate?
Choose a restricted mode where the provider supports one — Codex CLI and Gemini CLI both offer a readOnly mode, and Claude Code offers a plan mode — or use the Telegram bridge's safe mode, which runs sessions started from Telegram in a plan or read-only mode specifically. Cursor Agent does not currently offer a restricted mode inside OpsAI.
Does OpsAI run as root on my server?
No — every session runs as claude-runner, an isolated system user created specifically for OpsAI, not as root and not as the panel's own service account.
How is the live browser displayed?
Through Xvfb and noVNC, streamed back into the OpsAI window so you can watch the agent's browser session in real time, driven through a Playwright MCP connection set up during provider installation.
Is my Telegram bot token safe if something goes wrong with the integration?
Bot tokens are redacted from logs and error output, so a failure in the Telegram bridge does not print the token in plaintext where anyone with log access could read it.
What is the difference between choosing an "expert" and just using the General Assistant?
An expert scopes the session's framing to one area of the panel and preloads relevant quick-start prompts; it does not change what the underlying provider is technically capable of. The General Assistant is the right choice when a task does not fit neatly into one of the other 18 areas.
Why does each provider read a different context file — CLAUDE.md, AGENTS.md, GEMINI.md?
Each provider already has its own convention for a project context file it reads automatically at session start; OpsAI keeps the file that provider expects populated with the panel's own playbook rather than requiring you to repeat panel-specific context by hand every session.
Should I use OpsAI or the Panelica MCP Server for a given task?
If the task is development-adjacent and you already work inside Claude Code, Cursor or Codex CLI, connect the Panelica MCP Server to that client with a key scoped to the task. If you want an agent with the same terminal-and-browser reach a ROOT account would have, run inside the panel or reachable from Telegram, use OpsAI.