Documentation
Panoptes documentation
Connect your cloud accounts, understand spend and findings, and manage your Panoptes workspace with your team.
Last updated 27 October 2026. Panoptes is in beta; feature access depends on your plan and the release available to your workspace.
Overview
Panoptes gives engineering teams one view of what they run, what it costs and what is exposed, across AWS, Azure, Google Cloud and Kubernetes.
Start by connecting a dedicated cloud identity with read-only permissions. Panoptes periodically syncs supported resources, spend and findings into your workspace. Check the last sync time before making decisions; dashboard data is a snapshot rather than a continuous live feed.
What you can do
- Inventory — VMs, storage and Kubernetes workloads from every connected account in one filterable list.
- Cost — spend by provider and service, a six-month trend, a month-end forecast and anomaly detection.
- Savings — VMs to review for possible savings, right-sizing candidates and resources missing required tags.
- Security — public storage and sensitive ports open to the internet, ranked by severity.
- Terraform drift — resources created, removed or changed outside Terraform.
- AI Copilot — plain-English questions answered from your synced data.
Quick start
Connect one account, sync it and verify a known resource.
- Create an accountRegister at /register. A workspace is created for you. Open Plans to check your trial, current plan and limits. A Free account does not require a payment card.
- Connect a cloud accountOpen Settings → Connected cloud accounts → Connect account, choose a provider and paste read-only credentials. They are tested before they are saved.
- Run and verify the first syncUse Sync now for the account. Check its result and last successful sync. Duration varies with size, permissions and provider response times; a connection test is not a complete inventory or billing check.
- Verify a known resourceOpen Virtual machines or Storage and compare one resource with the provider console. Review Overview → Needs attention next. Empty data does not establish complete coverage.
Connect cloud accounts
Create a dedicated, read-only credential for Panoptes in each cloud.
Cloud credential fields are encrypted with AES-256-GCM before storage and are excluded from normal customer responses and Copilot context. Enter them only in the connection form.
Permissions by provider
| Provider | Credential | Discovery and billing permissions |
|---|---|---|
| AWS | Access key ID and secret access key | Administrator-reviewed EC2 discovery, S3 inventory/policy reads and Cost Explorer permissions. Role ARN/AssumeRole connection is not available in this beta. |
| Google Cloud | Service account JSON key, optional project ID | Compute/storage/policy reads for the project. Actual costs use a Standard or Detailed BigQuery billing export, with Data Viewer on its dataset/table and Job User on the query project. |
| Azure | Tenant ID, client ID, client secret value, subscription ID | Scoped resource reads. Validate Consumption/billing access separately; Reader does not prove access to every billing scope. |
- Prepare credentialsAsk the cloud administrator for a dedicated identity with the required scope. Keep key files private; never use a root identity or a broadly privileged production administrator.
- Enter the actual form fieldsIn Settings → Connected cloud accounts → Connect account, choose a provider and label. For GCP paste the complete JSON key; for Azure use the secret value rather than its identifier.
- Test the selected workflowSave after the connection check succeeds, run Sync now and compare a known resource. In the account row, open View collection details when Collection has gaps appears. Failed or incomplete inventory reads retain previous records, which may be stale. GCP billing needs the export table and location described below; review billing collection details separately. Test security and write workflows independently. Use re-authentication after credential rotation or expiry.
Google Cloud actual costs
- Enable the export in Google CloudIn Billing → Billing export → BigQuery export, enable Standard usage cost or Detailed usage cost and select a dataset. Wait for Google to populate the export table. FOCUS exports are not supported by this importer.
- Grant access to the Panoptes service accountEnable the BigQuery API. Grant
roles/bigquery.dataVieweron the export dataset/table androles/bigquery.jobUseron the project that will run queries. Your administrator enables the export; Panoptes only reads it. - Add the export configurationIn the GCP connection form, enter Billing export table as project.dataset.table and the exact Billing export location, such as US, EU or us-central1. The optional query project defaults to the table’s project. The connected Project ID selects whose charges are imported; a billing account ID is only an optional filter. Re-enter export fields when replacing credentials.
- Sync and compareSelect Sync now, inspect collection details, then open Cost analysis. Compare the same project, UTC usage month and after-credit costs with Google Billing. Repeated imports update the stored service/month totals. No results, permission errors and delayed exports are reported separately.
Optional write permissions
Start, stop and restart actions on VMs need extra permissions on the same credential. They are optional and never required for visibility.
ec2:StartInstances ec2:StopInstances ec2:RebootInstances
| Provider | Additional role |
|---|---|
| Google Cloud | roles/compute.instanceAdmin.v1, or a custom role with start, stop and reset permissions |
| Azure | Virtual Machine Contributor, or a custom role with start, power off and restart actions |
Product demos
For a guided product demo, contact our team. Any data labelled demo is illustrative and should not be used for billing or infrastructure decisions.
Panoptes CLI
An optional terminal client for your hosted Panoptes account.
The web dashboard works without a CLI installation. If you prefer terminal workflows, install the official panoptes-cli package. You need Node.js 22 or newer, a Panoptes account and the appropriate plan and role.
- Install the official clientInstall panoptes-cli with npm, then check the installed version using pnpt -v.
- Sign in to PanoptesRun pnpt login. The client connects to the hosted Panoptes service and asks for your email and password. Password input is hidden. Google-only sign-in is not supported by this CLI; use the web dashboard for that account.
- Check your workspaceRun pnpt whoami and pnpt status, then start with read-only commands. Resource IDs come from Panoptes list output. Your subscription, team role and enabled two-factor checks also apply in the CLI.
npm install -g panoptes-cli pnpt -v pnpt login pnpt whoami pnpt status
pnpt vm list pnpt aws vm list --region us-east-1 pnpt security findings --severity critical pnpt approvals list pnpt --help
Keep the CLI session files private and run pnpt logout on shared devices. Passwords are not saved by the client. If a write times out, check the dashboard and audit log before retrying; the operation may already have been accepted.
Troubleshooting
Separate access errors, stale observations and missing provider coverage.
| Symptom | Next check |
|---|---|
| No resources or old state | Check filters, account status, collection details and last sync time. A partial scan retains previous records; it does not prove they still exist. For AWS, a basic connection check can pass while ec2:DescribeInstances is denied. Allow that read operation in the intended regions and check organization restrictions. Run Sync now and compare a known item in the provider console. |
| No GCP cost | Configure a Standard/Detailed BigQuery export table and exact location. Check Data Viewer and Job User access, query-project API enablement, the connected project ID and export delay. A billing account ID alone is insufficient. Missing records do not prove zero spend. |
| Azure cost missing | Verify your subscription's supported Consumption/billing scope with the administrator. Resource reads and billing access differ. |
| 401 / 402 / 403 / 429 | Sign in for 401; inspect trial/plan access for 402; check role, ownership and TOTP for 403; wait before retrying 429. |
| AI, email or scheduled job unavailable | Check your plan and the delivery/status message, then contact Panoptes support with the time and affected workflow. A failed or skipped delivery does not mean the message was sent. |
Report the screen, time, provider and sanitized error to panoptes.cloud@gmail.com. Remove passwords, keys, cookies, raw state and kubeconfigs.
Inventory
Supported VMs, storage and Kubernetes workloads from connected accounts.
The Virtual machines and Storage pages read from the synced snapshot. Filter by provider, status, region or tag, search by name or ID, and export the current view to CSV.
Freshness
The top bar always shows when data was last synced. Data older than the expected refresh window is marked stale, and its exact UTC timestamp is available on hover. Panoptes refreshes connected accounts periodically. Check the displayed sync time and use Sync now in Settings when you need a fresh observation.
VM actions
Users with write access can start, stop and restart VMs from the table, and set auto-stop schedules. Viewers see the data but cannot run actions. Actions are recorded in the audit log.
Cost analysis
Where the money goes, by provider and by service.
The Cost analysis page shows this month’s spend by provider with the change against last month, a six-month trend, spend by service for the current month and a month-end forecast with a confidence label.
Missing cost data
If a provider has no cost data yet, the console says so instead of showing $0, and totals state which providers they exclude. On Free, cost analytics is locked and shown as such.
Exports
Use Export CSV to download the figures on the page. For a shareable summary, see the Executive report.
Cost anomalies
Spend that jumped away from its recent normal.
When a sync returns fresh billing records without reported billing gaps, Panoptes compares the current month’s spend for every provider and service with the average of up to the three most recent complete months. If the increase is larger than the threshold, an anomaly is recorded.
- The standard anomaly threshold is an increase of 40% above the baseline.
- Baselines below $10 are ignored so a $2 to $6 change does not create noise.
- Anomalies appear in the Overview’s Needs attention list and on the Cost anomalies page.
Savings recommendations
Candidates for saving money, each with an estimated monthly figure.
| Type | What it flags |
|---|---|
| Potentially idle VM | A metadata heuristic on a recently synced running VM without active/production tags. Actual idle duration and utilization are not measured. |
| Right-size | A VM that could move one size smaller in the same instance family. |
| Tag compliance | A resource missing required tags (environment, team and project by default). |
Use the row controls to dismiss, mark implemented, snooze until a date, or accept risk with a reason. Snoozed recommendations can reopen when a later scan finds them after expiry. These states record review; they do not execute a cloud change.
- Verify the evidenceCompare the candidate with actual workload utilization, ownership and provider pricing. Static estimates can overlap; they are not verified or realized savings.
- Record a decisionChoose Snooze, Dismiss or Accept risk and complete the requested date/reason. A later scan can refresh its lifecycle.
- Request an actionWhere offered, Request action creates an approval request: idle candidates map to stop and right-size candidates to resize. Review and execution are separate steps; inspect the request and provider permissions first.
Security scanning
Public storage and sensitive ports open to the internet.
Panoptes re-scans connected accounts on a schedule, and you can run a scan on demand with Scan now.
What is checked
| Finding | Severity |
|---|---|
| Storage bucket or account that is publicly accessible | High |
| SSH (22) or RDP (3389) open to the whole internet | Critical |
| MySQL (3306) or SQL Server (1433) open to the whole internet | Medium |
Working with findings
Each finding shows the resource, what is wrong and a recommended fix. You can acknowledge it, resolve it and export the list. Findings that stop appearing in a scan are resolved automatically, and a problem that comes back re-opens its finding.
Terraform drift
Find resources that no longer match your Terraform state.
Upload a Terraform state file (version 4 JSON) for a cloud account. Panoptes extracts selected attributes and manually compares them with the stored inventory snapshot.
- Refresh the sourceSync the connected account successfully, then open Terraform drift/IaC Drift.
- Upload a snapshotSelect the account, name the source, then upload the local state JSON or paste it. Choose Upload state.
- Run and verify a checkRun the uploaded state's check control. Confirm any reported change in the provider console and Terraform before acting.
| Drift type | Meaning |
|---|---|
| Unmanaged | A live VM or storage resource that is not in the state. |
| Missing in snapshot | No matching record in the compared inventory. It can be stale, unsupported or genuinely absent; verify in the provider. |
| Attribute mismatch | The resource exists on both sides, but instance type, region or status differ. |
The raw state is encrypted at rest and never returned by the API. Drift findings can be exported. Panoptes reports drift only; apply fixes through your normal Terraform workflow.
Kubernetes
Clusters, nodes, pods and deployments in one place.
Connect a cluster
- Open KubernetesChoose Connect cluster.
- Add the clusterEnter a name, choose the provider and paste a kubeconfig. It is tested, encrypted and stored in the vault.
- Browse your clusterUse the Clusters, Nodes and Pods tabs to inspect supported workloads. Deployment listing and scaling are also available in the CLI. Some additional cluster workflows are still in beta and do not have dashboard controls.
Pod actions
Users with write access can restart a pod and read its logs in the browser. Removing a cluster can require two-factor confirmation. Panoptes does not open shells in pods.
Scale a deployment
Use the CLI to list deployments and inspect the scale command before changing replica counts. Scaling changes your cluster and requires write access. Approval-based rollout restart/rollback is a newer beta workflow; contact support to check access for your workspace.
pnpt k8s deployments list CLUSTER_ID pnpt k8s deployments scale --help
AI Copilot
Ask questions about your cloud in plain English.
The Copilot answers using selected synced resources, spend and findings. It can miss context or make mistakes, so verify important answers in the dashboard and provider console. Connection credentials are excluded from its supplied context.
Example questions
- Which region costs the most this month?
- How many VMs are stopped across all providers?
- Which security findings are critical?
Alerts and notifications
Budget thresholds, checked after every sync.
Budget alerts
An alert compares your current calendar-month spend, overall or for one provider, with a threshold. When spend crosses the limit the alert triggers once and appears in the dashboard banner. It resets when spend falls back under the threshold, and changing the threshold re-arms it immediately.
Slack and webhooks
On Pro and Enterprise, alerts can also be delivered to a Slack channel or to your own endpoint (Settings → Slack alerts and Webhooks).
- Webhooks carry an HMAC signature so the receiver can verify them.
- Failed deliveries are retried with increasing delays (1 minute, 5 minutes, 30 minutes, 2 hours, 6 hours) and then marked as failed if delivery still cannot complete.
- Each delivery attempt is logged, and history is kept for 30 days.
Approvals
Sign-off for actions that should not run unreviewed.
Requests record an action, risk, reason and status: pending, approved, executing, completed, failed or rejected. An owner or admin other than the requester must approve. Owners, admins and members can execute an approved request; viewers cannot write. A solo owner needs another authorized teammate for independent approval. Pro access is required.
- Create the requestUse a recommendation's Request action control or the CLI. VM/storage requests bind to a synced resource in the selected account. An external ID or region that differs from the selected resource is rejected. Sync inventory first if the target is missing.
- Read a previewOpen Approvals and select Preview. Check target parameters and the provider-specific effect. Network remediation may delete a whole matching rule, affecting other ports/sources. Rollback guidance is descriptive, not automatic undo.
- Obtain independent reviewAnother owner/admin selects Approve or Reject / withdraw and optionally leaves a note. Approval saves the review; it does not execute. Members can withdraw their own pending request. Use status filters and page controls for older requests.
- Execute separatelySelect Execute approved action and confirm the target. All approved actions, including VM start, require a fresh authenticator code when your 2FA is enabled. The server accepts one execution claim per request. Inspect evidence and sync inventory: provider acknowledgement does not prove a completed rollout or healthy workload.
pnpt approvals list pnpt approvals approve --help pnpt approvals execute --help
Reports and sharing
Review your workspace and export a summary for your team.
The Executive report page summarizes spend, selected security findings and drift for your organization. It is part of the Pro plan.
- Review the reportOpen Executive report. Check the period, included providers and data freshness. Missing or stale source data also affects the report.
- Export your summarySelect Export Excel to download the spreadsheet. Share it only with people authorized to see your organization's cloud information.
Additional report options — beta
PDF export, scheduled email and expiring report links are newer beta workflows and are not yet available from the standard report controls or the public CLI release described above. Contact support to check availability and access for your workspace.
If scheduled delivery is enabled for your workspace, review its delivery history to confirm each send. If report sharing is enabled, an active link grants access to anyone who holds it. Share links currently return report data rather than a formatted report webpage; treat them as confidential and revoke them when no longer needed.
Team and roles
Access is relative to the active organization and membership.
| Role | What it can do |
|---|---|
| Owner | Organization ownership and billing. Can review another user's request and execute approved actions; cannot self-approve. |
| Admin | Connect accounts, run operations, invite and manage members. Cannot delete the organization or the owner. |
| Member | Connect accounts and run operations. Cannot manage members or organization settings. |
| Viewer | Read-only. Cannot run anything that changes data. |
To invite someone, go to Settings → Team, enter their email and choose a role. Invitation and organization-membership checks determine access. Your plan determines how many team members you can add.
If an invitation email does not arrive, check spam and use the invitation-link option shown in Settings. Send that link only to the intended teammate. For an expired invitation or trouble joining an existing workspace, contact your workspace administrator or Panoptes support.
Organizations and sessions
Keep team access and signed-in devices under control.
Your workspace groups connected accounts, reports and team permissions. Before changing infrastructure, confirm you are working in the intended workspace. Tabs in the same browser share the signed-in account.
Manage teammates in Settings → Team. Organization switching, ownership transfer and detailed session management are newer beta workflows that may not have self-service controls in your release; contact support for availability and assistance.
Sign-in security
Sign out on shared devices and use pnpt logout after a shared terminal session. Changing or resetting your password invalidates existing sessions; sign in again on each device. If you use Google-only sign-in or need help revoking access, contact support.
Account security
How Panoptes protects accounts, credentials and activity.
Two-factor authentication
Turn on authenticator-app (TOTP) two-factor authentication under Settings → Two-factor authentication. It adds a one-time code check to destructive actions such as removing a cloud account or cluster, deleting account data, and executing approved action requests.
Confirm enrollment with a code before 2FA becomes enabled. Each code is consumed once across enrollment, disabling 2FA and protected actions; wait for the next code after using one. If verification cannot be recorded, the protected action is blocked.
Passwords and sign-in
Change your password under Settings → Profile using your current password, then sign in again. A successful password change or reset signs out all existing sessions and invalidates outstanding reset links. Reset links are single-use, including simultaneous submissions. Sign-in is rate limited with account lockout, and requests that change data are checked for same-origin. If your session cannot be verified, sign in again or contact support.
Credential vault
Cloud credentials and kubeconfigs are encrypted at rest with AES-256-GCM and excluded from all API responses.
Audit log
Sensitive actions are recorded with who, what and when. Search, filter and export them from Audit log. The history you can view depends on your plan. This viewing window is separate from data-retention and deletion policies.
Plans and limits
Compare plan limits and check your workspace’s current trial or subscription in Plans.
| Limit | Free | Pro | Enterprise |
|---|---|---|---|
| Cloud accounts | 1 | Unlimited | Unlimited |
| Resources | 100 | Unlimited | Unlimited |
| Team members | 1 | 25 | Unlimited |
| Audit log retention | 7 days | 90 days | 365 days |
Eligible workspaces can receive a 14-day Pro trial; your Plans page shows whether a trial is active. See pricing for the full feature comparison. SSO/SAML for Enterprise is in development.
Something missing or unclear? Email panoptes.cloud@gmail.com.

