dropseed/plain/plain-portal

Claude Code and agent skill by dropseed/plain

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Open a remote Python shell on a production machine via encrypted tunnel. Use when you need to inspect production data, debug issues, run queries, or transfer files.

Install

npx vskill@latest install dropseed/plain/plain-portal

SKILL.md

Remote Portal Session

Open an encrypted tunnel to a remote machine and run Python code on it.

1. Start the remote side and connect

The remote side must be running first. Either start it yourself (if you have access to the platform CLI) or ask the user to start it:

PlatformCommand
Herokuheroku run plain portal start --read-only
Fly.iofly ssh console -C "plain portal start --read-only"
Kuberneteskubectl exec -it deploy/app -- plain portal start --read-only
Dockerdocker exec -it container plain portal start --read-only
SSHssh server plain portal start --read-only

start requires either --read-only or --read-write. Always use --read-only unless the user has explicitly asked for database writes.

Both `start` and `connect` are long-running foreground processes. If you run start yourself, use run_in_background so you don't block. Once it prints a portal code (e.g. 7-crossword-pineapple), read the code from the output. If the user ran it, ask them for the code.

Then connect (also use run_in_background):

uv run plain portal connect <code>

2. Run commands

Execute Python code on the remote machine:

uv run plain portal exec "<code>"

Output streams line by line in real time. The last expression's value is returned (like a REPL).

For long-running commands, increase the timeout (default 120s):

uv run plain portal exec --timeout 300 "<code>"

For machine-readable output:

uv run plain portal exec --json "<expression>"
File transfer
uv run plain portal pull <remote_path> <local_path>
uv run plain portal push <local_path> <remote_path>

Push is restricted to /tmp/ on the remote machine.

3. Disconnect

Kill the connect process to end the session. This also frees the remote process.

Important

  • Use --read-only sessions. Database writes will fail unless the remote was started with --read-write --yes, which should only happen at the user's explicit request.
  • Each exec gets a fresh namespace. Variables don't carry between commands. Put setup and queries in one code block if they depend on each other.
  • Use plain portal exec for quick queries. For heavy data export, write to /tmp/ on the remote and pull the file.
  • If the session drops, the remote side must be restarted and a new code used to reconnect.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dropseed/plain/plain-portal/badge)](https://verified-skill.com/skills/dropseed/plain/plain-portal)

Something wrong with this skill or its page? Tell us.