Notes for IT
What it is
Ploten connects an AI agent (Claude Code or Codex) to the Power BI Desktop that the user has open, so the agent can build and change report pages. It runs on the user’s PC, as the user.
Requirements
Windows 10 or 11, on x64 or ARM. Power BI Desktop, June 2026 or later. Node.js 22 or later. Claude Code or Codex. No administrator rights, with one exception: when Windows locks the Power BI setting for the user, an administrator types one line, once (see the Power BI setting). Tested with Windows and Power BI Desktop in English. Other languages are not tested yet.
Install line
The user types it in PowerShell or Command Prompt. It starts with npx.cmd, not npx: in PowerShell, npx runs a script file (npx.ps1), which the Windows default script policy (Restricted) and AllSigned block. npx.cmd runs the same program in both.
npx.cmd -y https://ploten.dev/install --token <licence key>The same line updates and repairs. The first install asks the user to accept the terms. With no terminal (a deployment tool), the first install runs only with --accept-terms, which accepts the terms for the user; without that option, the install stops before it writes anything. With no terminal, the installer asks no question and skips the two yes/no steps below; its output names the line that turns each on.
Options to add to the line:
--token <licence key>- Gives the licence key, so the installer doesn’t ask for it.
--status- Shows what is installed. It changes nothing.
--engine- Turns on model changes after a “no”: it asks for Microsoft’s terms again, then downloads Microsoft’s modeling engine.
--pbi-setting- Turns on the Power BI setting after a “no”.
--uninstall- Removes Ploten (see Uninstall below).
--accept-terms- For a deployment tool with no terminal: accepts the terms for the user.
What it installs, and where
Everything is per Windows user. A second Windows user on the same PC gets a second folder and uses a second place on the licence key.
%LOCALAPPDATA%\Ploten: the licence key, pass and clock file; the current and one previous Ploten version; a small launcher; the PC’s network name; a local record of the last 100 tool calls (never sent); page pictures (deleted the next time Ploten starts; the uninstall removes them, except in the cases under Uninstall); and, only after a yes, Microsoft’s modeling engine.%TEMP%\ploten-mcp: lock files. Microsoft’s engine runs with%TEMP%as its working folder.- Claude Code: a user-level MCP server entry, an allow rule for Ploten’s two tools, a marked block in the user’s
CLAUDE.md, and skills. - Codex: an MCP server entry in
config.toml, a marked block inAGENTS.md, and skills. - Each report folder that Ploten works in gets a
.plotenfolder (what Ploten learned about that report) and, when the folder uses git, Ploten’s lines in its.gitignore.
The Power BI setting (only after a yes, or by an administrator’s line)
Ploten drives Power BI Desktop through its local debugging connection. The setting writes one per-user value, PBIDesktop.exe = --remote-debugging-port=0, under HKCU\. Then only Power BI Desktop opens a debugging port, on a free port. The port listens only on this PC (127.0.0.1). Any program that runs on this PC, for any signed-in user, can connect to it while Power BI Desktop is open. On a PC that several people sign in to at the same time, ask IT first. The old value is saved under HKCU\; the uninstall line puts it back. Ploten asks nothing when an IT policy already sets this.
When Windows locks this key for the user, Ploten asks nothing and changes nothing. This holds for a standard account, and for an administrator account in a normal window: under UAC its token cannot write under HKCU\ either. Then the installer prints one line for an administrator to paste in Terminal (Admin) or Windows PowerShell (Admin), once. The line is plain PowerShell commands, not a script file. It sets the machine-wide value PBIDesktop.exe = --remote-debugging-port=0 under HKLM\. It creates that key only when the key is missing, and it changes no other value under the key. The WebView2 loader reads this machine-wide value before the per-user one, so Power BI Desktop opens its debugging port for every user of the PC; no other app is affected. Ploten itself never writes under HKLM: only the administrator’s own line does. Ploten gives no such line when a machine-wide value for PBIDesktop.exe exists already (an IT policy), or on a PC where more than one user can sign in at the same time (a terminal server): then it names this page. On a domain PC where a Group Policy manages this key, a policy refresh can remove a value set by hand: then IT sets the value in that policy.
PowerShell script policy
Ploten runs Windows PowerShell (powershell.exe in System32), never PowerShell 7 (pwsh.exe), so only the Windows PowerShell execution policy applies. Ploten runs one script file, its Power BI setting script, from its install folder, with -ExecutionPolicy Bypass, as the user, in a normal window. It reads the setting (read only) in the install, in the uninstall, and in a session when Power BI Desktop cannot be reached. It writes or puts back the per-user value only after a yes, on an account that can write it. Ploten’s other session reads (the process list, Power BI Desktop’s version) are read-only PowerShell commands with no script file, which an execution policy does not block, and which also run in Constrained Language Mode. A Group Policy execution policy for Windows PowerShell of AllSigned or Restricted overrides Bypass and stops the setting script: then IT sets the one value above itself, and Ploten’s message to the user names this page. The administrator’s line is plain commands that the administrator types, not a script file, so an execution policy does not stop it.
Network
Allow these addresses:
ploten.dev- The install line.
pass.ploten.dev- The licence check (session start, about once a day, more often near the end of a pass), install, update and uninstall.
1yuuuxf72zrwlal9.private. blob. vercel-storage. com - The Ploten download (a link that ends after a short time).
registry.npmjs.org- npx itself, and Microsoft’s modeling engine (only after a yes).
All other connections stay on the PC: Power BI Desktop’s debugging port on 127.0.0.1, and a named pipe.
Proxy: set HTTPS_PROXY (or npm’s https-proxy). The installer passes it on to Node.js and puts it in the agent entries (Node.js 22.21 or later, or 24 or later). A proxy address that holds a user name and password goes into those entries as it is, in plain text, in the user’s own agent settings files: use a proxy that does not need a password in its address, or sign-in by the PC account. A network that inspects secure connections with its own certificate: Ploten uses the Windows certificate store (Node.js 22.19 or later, or 24.6 or later).
Programs it runs
As the user, with no administrator rights:
node.exe- Always. Ploten itself.
powershell.exe -NoProfile -NonInteractive -Command <a read-only command>- Each session. Reads the process list (Power BI Desktop, its WebView2 and its model engine) and Power BI Desktop’s version; no script file.
tasklist.exe,netstat.exe- Each session. Finds the Power BI Desktop process and its local ports.
- Microsoft’s modeling engine
- When the agent works on the data model (after a yes). Microsoft’s own model reader and writer.
reg.exe,whoami.exe(else one PowerShell call)- Licence check. The PC code: a one-way code of this PC’s Windows id and the user’s account.
powershell.exe -NoProfile -ExecutionPolicy Bypass -File <a Ploten script>- Install and uninstall; after the yes; when a message about the setting is shown. The Power BI setting: reads it, and sets or puts back the per-user value (Ploten’s own script, in its install folder).
tar.exe(System32)- Install, update. Unpacks the download.
npm,claude- Install. npm downloads Microsoft’s modeling engine, after a yes; claude adds the Claude Code entry, always.
What it sends
The licence key, the PC code, the Ploten version and the id of this PC’s place on the licence key (a random code), to pass.ploten.dev. No report content, no data, no record of tool calls. The agent sends what it reads to its own provider. See the privacy notice.
Uninstall
npx.cmd -y https://ploten.dev/install --uninstallIt puts the per-user Power BI setting back, removes the agent entries and blocks that Ploten added, frees the PC’s place on the licence key, and deletes %LOCALAPPDATA%\Ploten and %TEMP%\ploten-mcp. Report folders stay as they are. A machine-wide value stays on for every user: when Ploten gave the administrator line on this PC, the uninstall prints the line that removes the value (Remove-ItemProperty) for an administrator to paste; otherwise it says to ask IT. It never says the setting is back while that value is on.
When it cannot free the PC’s place for now (no network, or the licence service busy or at fault), it keeps both folders, says so, and a later run frees the place. When the licence service refuses the request, it deletes both folders, and its line names how to free the place. When a file is in use, it stops, names the folder, and says to close Power BI Desktop and the agent, then run it again. When PLOTEN_LOCAL_STATE_DIR or an agent entry names another Ploten folder, it deletes nothing in that folder and names it and the Ploten items in it.
Questions
Mail hello@ploten.dev.