{"id":23895,"date":"2026-09-11T00:56:13","date_gmt":"2026-09-11T00:56:13","guid":{"rendered":"https:\/\/scannn.com\/vastsa-pi-desktop-local-first-ai-coding-agent-desktop-electron-rust-host-core-pi-agent-harness-user-installable-plugins-%c2%b7-github\/"},"modified":"2026-09-11T00:56:13","modified_gmt":"2026-09-11T00:56:13","slug":"vastsa-pi-desktop-local-first-ai-coding-agent-desktop-electron-rust-host-core-pi-agent-harness-user-installable-plugins-%c2%b7-github","status":"publish","type":"post","link":"https:\/\/scannn.com\/lv\/vastsa-pi-desktop-local-first-ai-coding-agent-desktop-electron-rust-host-core-pi-agent-harness-user-installable-plugins-%c2%b7-github\/","title":{"rendered":"vastsa\/PI-Desktop: Local-first AI coding agent desktop: Electron + Rust host core + pi Agent Harness + user-installable plugins \u00b7 GitHub"},"content":{"rendered":"\n<div id=\"\">\n<hr\/>\n<div class=\"markdown-alert markdown-alert-important\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\"><svg data-component=\"Octicon\" class=\"octicon octicon-report mr-2\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"\/><\/svg>Important<\/p>\n<p dir=\"auto\"><strong>PI-Desktop is currently in Early Preview.<\/strong><\/p>\n<p dir=\"auto\">The project is actively developed and already usable for real coding workflows, but APIs, extension interfaces, and some desktop behaviors may continue to evolve.<\/p>\n<\/div>\n<p dir=\"auto\">Most coding agents live inside a terminal, an editor extension, or a hosted service.<\/p>\n<p dir=\"auto\">PI-Desktop gives them a workspace of their own.<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"50%\" valign=\"top\">\n<p dir=\"auto\">Work across repositories and sessions without tying your agent workflow to one editor or terminal.<\/p>\n<p dir=\"auto\">Projects, conversations, reviews, files, previews, notifications, and extensions live in one workspace.<\/p>\n<\/td>\n<td width=\"50%\" valign=\"top\">\n<p dir=\"auto\">Use OpenAI, Anthropic, local models, hosted gateways, or any OpenAI-compatible API.<\/p>\n<p dir=\"auto\">Configure multiple providers and models, then switch between them per session.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"> Inspectable by default<\/h3>\n<p><a id=\"user-content--inspectable-by-default\" class=\"anchor\" aria-label=\"Permalink: &#x1f50d; Inspectable by default\" href=\"#-inspectable-by-default\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">Agents can read files, edit code, and run commands \u2014 but privileged actions pass through PI-Desktop&#8217;s permission layer.<\/p>\n<p dir=\"auto\">Review diffs, inspect command output, and decide how much autonomy each session gets.<\/p>\n<\/td>\n<td width=\"50%\" valign=\"top\">\n<p dir=\"auto\">Add Skills, MCP servers, Subagents, and installable Plugins.<\/p>\n<p dir=\"auto\">Plugins can contribute tools, commands, panels, themes, services, skills, and new workspace experiences.<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<hr\/>\n<p dir=\"auto\">Getting started only takes a few steps:<\/p>\n<ol dir=\"auto\">\n<li>\n<p dir=\"auto\"><strong>Connect a model<\/strong><br \/>\nOpen <strong>Settings \u2192 Model configuration<\/strong>, choose a provider or compatible API, and add your credentials.<\/p>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>Open a project<\/strong><br \/>\nAdd any local repository or project directory from the sidebar.<\/p>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>Pick Agent, Plan, or Goal<\/strong><br \/>\n<strong>Agent<\/strong> starts working. <strong>Plan<\/strong> waits until you approve a frozen implementation plan. <strong>Goal<\/strong> waits until you approve the outcome, then the agent chooses the path.<\/p>\n<\/li>\n<li>\n<p dir=\"auto\"><strong>Review the result<\/strong><br \/>\nInspect edits in the Review panel, check command output, preview the application, and continue the conversation without leaving PI-Desktop.<\/p>\n<\/li>\n<\/ol>\n<hr\/>\n<p dir=\"auto\">Same agent. Three gates. Privileged tools still go through the permission layer in every mode.<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<thead>\n<tr>\n<th\/>\n<th><strong>Agent<\/strong><\/th>\n<th><strong>Plan<\/strong><\/th>\n<th><strong>Goal<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>You approve<\/td>\n<td>Nothing extra<\/td>\n<td>The implementation plan<\/td>\n<td>The outcome and acceptance criteria<\/td>\n<\/tr>\n<tr>\n<td>The agent does<\/td>\n<td>Reads, edits, runs commands, tests, iterates<\/td>\n<td>Studies the repo, writes a frozen plan, then waits<\/td>\n<td>Picks the path and works until the goal is met<\/td>\n<\/tr>\n<tr>\n<td>Use when<\/td>\n<td>You want it to just do the work<\/td>\n<td>The change is large or risky and you want the approach first<\/td>\n<td>You care about the result, not the route<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<p dir=\"auto\"><strong>Agent<\/strong> is the default loop: inspect the tree, patch files, run commands, and keep going.<\/p>\n<p dir=\"auto\"><strong>Plan<\/strong> is the approval boundary. The agent researches first and produces an immutable implementation plan. Execution does not start until you sign off.<\/p>\n<p dir=\"auto\"><strong>Goal<\/strong> is outcome-first. You lock the objective and acceptance criteria; the agent decides how to get there.<\/p>\n<hr\/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Delegate work to Subagents<\/h3>\n<p><a id=\"user-content-delegate-work-to-subagents\" class=\"anchor\" aria-label=\"Permalink: Delegate work to Subagents\" href=\"#delegate-work-to-subagents\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">Large tasks rarely belong in one context window.<\/p>\n<p dir=\"auto\">PI-Desktop can delegate independent work to background Subagents for things like:<\/p>\n<ul dir=\"auto\">\n<li>codebase exploration<\/li>\n<li>multi-file implementation<\/li>\n<li>research and investigation<\/li>\n<li>test analysis<\/li>\n<li>adversarial review<\/li>\n<\/ul>\n<p dir=\"auto\">Each Subagent runs in its own context and reports its result back to the parent agent.<\/p>\n<hr\/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">A workspace built for long sessions<\/h3>\n<p><a id=\"user-content-a-workspace-built-for-long-sessions\" class=\"anchor\" aria-label=\"Permalink: A workspace built for long sessions\" href=\"#a-workspace-built-for-long-sessions\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">PI-Desktop is designed for more than one prompt at a time.<\/p>\n<p dir=\"auto\">You can manage multiple projects and sessions, pin or archive conversations, branch sessions, queue prompts while an agent is running, reference files with <code>@<\/code>, use slash commands, and search across the application.<\/p>\n<p dir=\"auto\">Streaming responses are checkpointed so interrupted work can survive application restarts or runtime failures whenever possible.<\/p>\n<hr\/>\n<p dir=\"auto\">PI-Desktop does not lock the agent runtime to a hardcoded model list.<\/p>\n<p dir=\"auto\">Use:<\/p>\n<ul dir=\"auto\">\n<li>OpenAI and Anthropic<\/li>\n<li>OpenAI-compatible APIs<\/li>\n<li>hosted model gateways<\/li>\n<li>local gateways such as Ollama and LM Studio<\/li>\n<li>multiple models under the same provider<\/li>\n<li>provider OAuth accounts where supported<\/li>\n<\/ul>\n<p dir=\"auto\">Model configuration can include context windows, output limits, reasoning controls, temperature, and other model-specific behavior.<\/p>\n<p dir=\"auto\">Switch models directly from the Composer without recreating your session.<\/p>\n<hr\/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Review the work, not just the answer<\/h2>\n<p><a id=\"user-content-review-the-work-not-just-the-answer\" class=\"anchor\" aria-label=\"Permalink: Review the work, not just the answer\" href=\"#review-the-work-not-just-the-answer\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">The agent workspace includes dedicated surfaces for the things that matter while coding:<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"50%\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/image\/readme\/chat_en.png\"><img decoding=\"async\" src=\"https:\/\/github.com\/vastsa\/PI-Desktop\/raw\/main\/docs\/image\/readme\/chat_en.png\" alt=\"PI-Desktop conversation\" style=\"max-width: 100%;\"\/><\/a><\/p>\n<p align=\"center\" dir=\"auto\"><sub>Long-running conversations with transcript navigation<\/sub><\/p>\n<\/td>\n<td width=\"50%\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/image\/readme\/model_en.png\"><img decoding=\"async\" src=\"https:\/\/github.com\/vastsa\/PI-Desktop\/raw\/main\/docs\/image\/readme\/model_en.png\" alt=\"PI-Desktop model selection\" style=\"max-width: 100%;\"\/><\/a><\/p>\n<p align=\"center\" dir=\"auto\"><sub>Switch providers, models, and reasoning levels per session<\/sub><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td width=\"50%\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/image\/readme\/plugins_en.png\"><img decoding=\"async\" src=\"https:\/\/github.com\/vastsa\/PI-Desktop\/raw\/main\/docs\/image\/readme\/plugins_en.png\" alt=\"PI-Desktop plugin marketplace\" style=\"max-width: 100%;\"\/><\/a><\/p>\n<p align=\"center\" dir=\"auto\"><sub>Extend the workspace through the plugin marketplace<\/sub><\/p>\n<\/td>\n<td width=\"50%\">\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/image\/readme\/addmodel_en.png\"><img decoding=\"async\" src=\"https:\/\/github.com\/vastsa\/PI-Desktop\/raw\/main\/docs\/image\/readme\/addmodel_en.png\" alt=\"PI-Desktop model configuration\" style=\"max-width: 100%;\"\/><\/a><\/p>\n<p align=\"center\" dir=\"auto\"><sub>Add a provider and connect a model<\/sub><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<p align=\"center\" dir=\"auto\">\n<a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/guide\/screenshots.md\"><strong>Explore all screenshots \u2192<\/strong><\/a>\n<\/p>\n<hr\/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Extensions without rebuilding the app<\/h2>\n<p><a id=\"user-content-extensions-without-rebuilding-the-app\" class=\"anchor\" aria-label=\"Permalink: Extensions without rebuilding the app\" href=\"#extensions-without-rebuilding-the-app\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">PI-Desktop has several extension layers depending on how deeply you want to customize the agent.<\/p>\n<p dir=\"auto\">Give agents reusable instructions and workflows.<\/p>\n<p dir=\"auto\">Skills can be installed globally or activated for individual projects.<\/p>\n<p dir=\"auto\">Connect external tools and services through Model Context Protocol servers without baking them into the desktop application.<\/p>\n<p dir=\"auto\">PI-Desktop can also be controlled by an external MCP Agent. Start the app with<br \/>\n<code>PI_DESKTOP_MCP_CONTROL=1<\/code>; then read the loopback endpoint and bearer token<br \/>\nfrom <code>mcp-control.json<\/code> in the Electron user-data directory. The endpoint<br \/>\nsupports project\/session\/Agent workflows and a reviewed desktop operation<br \/>\ncatalog. It is disabled by default, binds loopback only, and grants the<br \/>\ncalling local Agent the same authority as the desktop for those operations \u2014<br \/>\n<code>confirm: true<\/code> is not a user prompt.<\/p>\n<p dir=\"auto\">Create specialized agents with their own instructions, tools, and model choices, then delegate work to them from another agent.<\/p>\n<p dir=\"auto\">Extensions written for the <a href=\"https:\/\/github.com\/badlogic\/pi-mono\">pi<\/a> CLI run<br \/>\ninside PI-Desktop&#8217;s agent unchanged: a plugin lists them under<br \/>\n<code>contributes.agentExtensions<\/code>, and Plugins \u2192 &#8220;Import pi extension&#8221; wraps an<br \/>\nexisting extension file or directory in a plugin for you. They register<br \/>\ntools, slash commands, and hooks on every turn, tool call, and provider<br \/>\nrequest, and run with the same access as the agent&#8217;s own tools, which the<br \/>\n<code>agent.extension<\/code> permission asks you to confirm.<\/p>\n<p dir=\"auto\">Plugins can extend PI-Desktop itself with:<\/p>\n<ul dir=\"auto\">\n<li>agent tools<\/li>\n<li>commands<\/li>\n<li>workspace panels<\/li>\n<li>work-panel views<\/li>\n<li>Skills<\/li>\n<li>MCP servers<\/li>\n<li>Subagents<\/li>\n<li>themes<\/li>\n<li>resident services<\/li>\n<li>inter-plugin messaging<\/li>\n<\/ul>\n<p dir=\"auto\">Plugins can be installed locally or through the marketplace using the <code>.piplug<\/code> package workflow.<\/p>\n<div class=\"markdown-alert markdown-alert-note\" dir=\"auto\">\n<p class=\"markdown-alert-title\" dir=\"auto\"><svg data-component=\"Octicon\" class=\"octicon octicon-info mr-2\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"\/><\/svg>Note<\/p>\n<p dir=\"auto\">Plugin processes are permission-gated and isolated from the renderer, but plugins are still user-trusted code rather than a complete operating-system sandbox. Only install plugins you trust.<\/p>\n<\/div>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/plugin-development.md\">Build your first plugin \u2192<\/a><\/p>\n<hr\/>\n<p dir=\"auto\">PI-Desktop is <strong>local-first<\/strong>, not \u201cnothing ever touches the network.\u201d<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<thead>\n<tr>\n<th>Data<\/th>\n<th>Behavior<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Conversations<\/td>\n<td>Stored locally as JSONL with a SQLite index<\/td>\n<\/tr>\n<tr>\n<td>Settings<\/td>\n<td>Stored on your machine<\/td>\n<\/tr>\n<tr>\n<td>API credentials<\/td>\n<td>Stored in the operating system keychain<\/td>\n<\/tr>\n<tr>\n<td>Logs<\/td>\n<td>Local<\/td>\n<\/tr>\n<tr>\n<td>PI-Desktop telemetry<\/td>\n<td>None<\/td>\n<\/tr>\n<tr>\n<td>Model requests<\/td>\n<td>Sent directly to the provider or endpoint you configure<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<p dir=\"auto\">There is no required PI-Desktop account and no mandatory PI-hosted relay between your machine and your model provider.<\/p>\n<p dir=\"auto\">If you use a remote model provider, the context required for that model request is naturally sent to that provider according to its own privacy policy.<\/p>\n<hr\/>\n<p dir=\"auto\">Download the latest build from <strong><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/releases\/latest\">GitHub Releases<\/a><\/strong>.<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<thead>\n<tr>\n<th>Platform<\/th>\n<th>Architecture<\/th>\n<th>Package<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>macOS<\/td>\n<td>Apple Silicon<\/td>\n<td><code>.dmg<\/code> \/ <code>.zip<\/code><\/td>\n<\/tr>\n<tr>\n<td>macOS<\/td>\n<td>Intel<\/td>\n<td><code>.dmg<\/code> \/ <code>.zip<\/code><\/td>\n<\/tr>\n<tr>\n<td>Windows<\/td>\n<td>x64<\/td>\n<td>NSIS installer \/ portable exe<\/td>\n<\/tr>\n<tr>\n<td>Linux<\/td>\n<td>x64<\/td>\n<td><code>.AppImage<\/code> \/ <code>.deb<\/code> \/ <code>.rpm<\/code> \/ <code>.asar<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<p dir=\"auto\">Packaged builds can check GitHub Releases for updates and surface new versions inside the application. Windows NSIS and Linux AppImage can download and install in-app; macOS, Linux deb\/rpm, and the Windows portable exe open the releases page. The Linux <code>.asar<\/code> asset is available for repackaging with a system Electron; launch it with <code>electron PI-Desktop-&lt;version&gt;-linux-x64.asar<\/code> after adding the native host and packaged resources required by the target distribution.<\/p>\n<p dir=\"auto\">Linux x64 packages need <strong>glibc 2.35<\/strong> or newer. That is the library shipped with:<\/p>\n<ul dir=\"auto\">\n<li>Ubuntu 22.04 or later<\/li>\n<li>Debian 12 or later<\/li>\n<li>Fedora 36 or later<\/li>\n<\/ul>\n<p dir=\"auto\">Ubuntu 20.04, Debian 11, Fedora 35, and older releases cannot load the bundled host. Check with <code>ldd --version<\/code>.<\/p>\n<p dir=\"auto\">The tagged-release workflow publishes unsigned macOS artifacts by default. For<br \/>\na trusted unsigned install, move <code>PI-Desktop.app<\/code> to Applications and<br \/>\ndouble-click <code>PI-Desktop-macOS-open.command<\/code> if macOS says the app is damaged.<br \/>\nA manually dispatched run with <code>sign_macos: true<\/code> signs, notarizes, and staples<br \/>\nmacOS artifacts with Developer ID credentials before publication; signed builds<br \/>\ndo not need the helper.<\/p>\n<hr\/>\n<div class=\"markdown-heading\" dir=\"auto\">\n<h2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Import your existing sessions<\/h2>\n<p><a id=\"user-content-import-your-existing-sessions\" class=\"anchor\" aria-label=\"Permalink: Import your existing sessions\" href=\"#import-your-existing-sessions\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\">Already using another coding agent?<\/p>\n<p dir=\"auto\">PI-Desktop can import local sessions from supported tools including:<\/p>\n<ul dir=\"auto\">\n<li>Claude Code<\/li>\n<li>Codex<\/li>\n<li>OpenCode<\/li>\n<li>Pi<\/li>\n<\/ul>\n<p dir=\"auto\">Open <strong>Settings \u2192 Import<\/strong> to bring existing work into the desktop workspace.<\/p>\n<hr\/>\n<p dir=\"auto\">PI-Desktop deliberately separates the user interface from privileged host capabilities and the agent loop.<\/p>\n<section class=\"js-render-needs-enrichment render-needs-enrichment position-relative\" data-identity=\"7e58bcc8-dc46-4369-ac4e-d7a7a64acbee\" data-host=\"https:\/\/viewscreen.githubusercontent.com\" data-src=\"https:\/\/viewscreen.githubusercontent.com\/markdown\/mermaid?docs_host=https%3A%2F%2Fdocs.github.com\" data-type=\"mermaid\" aria-label=\"mermaid rendered output container\">\n<div class=\"js-render-enrichment-target\" data-json=\"{&quot;data&quot;:&quot;flowchart TB\\n    UI[\\&quot;React Renderer&lt;br\/&gt;Chat \u00b7 Projects \u00b7 Reviews \u00b7 Settings\\&quot;]\\n    Electron[\\&quot;Electron Main&lt;br\/&gt;Desktop orchestration\\&quot;]\\n    Rust[\\&quot;Rust Host Core&lt;br\/&gt;Permissions \u00b7 Filesystem \u00b7 SQLite \u00b7 Secrets\\&quot;]\\n    Agent[\\&quot;pi Agent Sidecar&lt;br\/&gt;Agent loop \u00b7 Models \u00b7 Streaming\\&quot;]\\n    Provider[\\&quot;Model Provider&lt;br\/&gt;Cloud or Local\\&quot;]\\n\\n    UI --&gt; Electron\\n    Electron --&gt; Rust\\n    Electron --&gt; Agent\\n    Agent &lt;--&gt; Rust\\n    Agent --&gt; Provider\\n&quot;}\" data-plain=\"flowchart TB&#10;    UI[&quot;React Renderer&lt;br\/&gt;Chat \u00b7 Projects \u00b7 Reviews \u00b7 Settings&quot;]&#10;    Electron[&quot;Electron Main&lt;br\/&gt;Desktop orchestration&quot;]&#10;    Rust[&quot;Rust Host Core&lt;br\/&gt;Permissions \u00b7 Filesystem \u00b7 SQLite \u00b7 Secrets&quot;]&#10;    Agent[&quot;pi Agent Sidecar&lt;br\/&gt;Agent loop \u00b7 Models \u00b7 Streaming&quot;]&#10;    Provider[&quot;Model Provider&lt;br\/&gt;Cloud or Local&quot;]&#10;&#10;    UI --&gt; Electron&#10;    Electron --&gt; Rust&#10;    Electron --&gt; Agent&#10;    Agent &lt;--&gt; Rust&#10;    Agent --&gt; Provider&#10;\" dir=\"auto\">\n<div class=\"render-plaintext-hidden\" dir=\"auto\">\n<pre lang=\"mermaid\" aria-label=\"Raw mermaid code\">flowchart TB\n    UI[\"React Renderer&lt;br\/&gt;Chat \u00b7 Projects \u00b7 Reviews \u00b7 Settings\"]\n    Electron[\"Electron Main&lt;br\/&gt;Desktop orchestration\"]\n    Rust[\"Rust Host Core&lt;br\/&gt;Permissions \u00b7 Filesystem \u00b7 SQLite \u00b7 Secrets\"]\n    Agent[\"pi Agent Sidecar&lt;br\/&gt;Agent loop \u00b7 Models \u00b7 Streaming\"]\n    Provider[\"Model Provider&lt;br\/&gt;Cloud or Local\"]\n\n    UI --&gt; Electron\n    Electron --&gt; Rust\n    Electron --&gt; Agent\n    Agent &lt;--&gt; Rust\n    Agent --&gt; Provider\n<\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<p>  <span class=\"js-render-enrichment-loader d-flex flex-justify-center flex-items-center width-full\" style=\"min-height:100px\" role=\"presentation\"><br \/>\n    <span data-view-component=\"true\"><br \/>\n  <svg style=\"box-sizing: content-box; color: var(--color-icon-primary);\" width=\"16\" height=\"16\" viewbox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\" data-view-component=\"true\" class=\"octospinner mx-auto tmp-mx-auto anim-rotate\">\n    <circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"currentColor\" stroke-opacity=\"0.25\" stroke-width=\"2\" vector-effect=\"non-scaling-stroke\" fill=\"none\"\/>\n    <path d=\"M15 8a7.002 7.002 0 00-7-7\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" vector-effect=\"non-scaling-stroke\"\/>\n<\/svg>    <span class=\"sr-only\">Loading<\/span><br \/>\n<\/span><br \/>\n  <\/span><br \/>\n<\/section>\n<p dir=\"auto\">The renderer has no Node integration.<\/p>\n<p dir=\"auto\">The <strong>Rust Host Core<\/strong> owns privileged workspace operations, permissions, persistence, and secrets. The <strong>pi Agent Sidecar<\/strong> owns model interaction and the agent loop. Electron coordinates the desktop lifecycle while keeping those responsibilities separated.<\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/spec\/02-architecture\/01-architecture.md\">Read the architecture specification \u2192<\/a><\/p>\n<hr\/>\n<p dir=\"auto\">PI-Desktop is an early preview under active development.<\/p>\n<p dir=\"auto\">The current <strong>0.14.x<\/strong> line includes the desktop shell, streaming agent runtime, Agent \/ Plan \/ Goal workflows, permission-aware workspace tools, projects and sessions, session imports, local MCP control, MCP \/ Skills \/ Subagents, background delegation, multi-provider model configuration, plugins and marketplace support, context checkpoints, notifications, release notes, and cross-platform packaging.<\/p>\n<p dir=\"auto\">Current priorities include:<\/p>\n<ul dir=\"auto\">\n<li>macOS tagged-release qualification<\/li>\n<li>installer upgrade and rollback qualification<\/li>\n<li>continued runtime and session-recovery hardening<\/li>\n<li>stronger plugin sandboxing and publisher verification<\/li>\n<li>broader UI-driven end-to-end coverage<\/li>\n<\/ul>\n<p dir=\"auto\">Follow development through the <a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/project\/BOARD.md\">project board<\/a> and <a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/spec\/06-delivery\/01-mvp-milestones.md\">milestones<\/a>.<\/p>\n<hr\/>\n<ul dir=\"auto\">\n<li>Node.js <code>&gt;=22.19<\/code><\/li>\n<li>pnpm <code>&gt;=10<\/code><\/li>\n<li>stable Rust toolchain<\/li>\n<\/ul>\n<p dir=\"auto\">The repository currently pins pnpm 11, while CI and release builds use Node 24.<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"git clone https:\/\/github.com\/vastsa\/PI-Desktop.git&#10;cd PI-Desktop&#10;&#10;pnpm install&#10;&#10;cargo build -p host-core&#10;pnpm build:js&#10;&#10;pnpm dev\">\n<pre>git clone https:\/\/github.com\/vastsa\/PI-Desktop.git\n<span class=\"pl-c1\">cd<\/span> PI-Desktop\n\npnpm install\n\ncargo build -p host-core\npnpm build:js\n\npnpm dev<\/pre>\n<\/div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"pnpm typecheck&#10;pnpm lint&#10;pnpm test\">\n<pre>pnpm typecheck\npnpm lint\npnpm <span class=\"pl-c1\">test<\/span><\/pre>\n<\/div>\n<p dir=\"auto\">Additional protocol, Plan, supervision, Subagent, and Electron E2E suites are documented in the repository specification.<\/p>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"pnpm docs:dev&#10;pnpm docs:check\">\n<pre>pnpm docs:dev\npnpm docs:check<\/pre>\n<\/div>\n<p dir=\"auto\">Useful references:<\/p>\n<hr\/>\n<p dir=\"auto\">Issues, bug reports, feature proposals, documentation improvements, and pull requests are welcome.<\/p>\n<p dir=\"auto\">For larger changes, opening an issue first makes it easier to align the implementation with the existing architecture and product contracts.<\/p>\n<p dir=\"auto\">When working in the repository, start with <a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/AGENTS.md\">AGENTS.md<\/a> and the <a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/docs\/spec\/README.md\">specification index<\/a>.<\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/issues\/new\/choose\">Report an issue<\/a> \u00b7<br \/>\n<a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/issues\">View open issues<\/a><\/p>\n<hr\/>\n<p dir=\"auto\">PI-Desktop builds on the excellent work of the open-source ecosystem.<\/p>\n<p dir=\"auto\">The agent runtime uses <a href=\"https:\/\/github.com\/badlogic\/pi-mono\"><code>pi-ai<\/code><\/a> and <code>pi-agent-core<\/code> from <strong>pi-mono<\/strong>.<\/p>\n<p dir=\"auto\">The desktop application is built with technologies including Electron, React, TypeScript, Rust, SQLite, Vite, Tailwind CSS, Shiki, Mermaid, KaTeX, TypeBox, and i18next.<\/p>\n<p dir=\"auto\">Thank you to every project and contributor that makes PI-Desktop possible.<\/p>\n<hr\/>\n<p dir=\"auto\">This project was created by the models below \u2014 not by a lone genius, but by a token-powered construction crew.<\/p>\n<p><markdown-accessiblity-table><\/p>\n<table>\n<thead>\n<tr>\n<th>Provider<\/th>\n<th>Model<\/th>\n<th align=\"right\">Tokens<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.6-luna<\/code><\/td>\n<td align=\"right\">5,304,019,817<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.6-sol<\/code><\/td>\n<td align=\"right\">4,825,458,273<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.4<\/code><\/td>\n<td align=\"right\">4,213,269,324<\/td>\n<\/tr>\n<tr>\n<td>Anthropic<\/td>\n<td><code>claude-opus-5<\/code><\/td>\n<td align=\"right\">3,909,952,653<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.5<\/code><\/td>\n<td align=\"right\">3,800,382,171<\/td>\n<\/tr>\n<tr>\n<td>xAI<\/td>\n<td><code>grok-4.5<\/code><\/td>\n<td align=\"right\">1,947,736,115<\/td>\n<\/tr>\n<tr>\n<td>xAI<\/td>\n<td><code>grok-4.6<\/code><\/td>\n<td align=\"right\">797,233,571<\/td>\n<\/tr>\n<tr>\n<td>DeepSeek<\/td>\n<td><code>deepseek-v4-flash<\/code><\/td>\n<td align=\"right\">329,790,234<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.2-codex<\/code><\/td>\n<td align=\"right\">320,983,170<\/td>\n<\/tr>\n<tr>\n<td>Xiaomi<\/td>\n<td><code>mimo-v2.5-pro<\/code><\/td>\n<td align=\"right\">304,822,052<\/td>\n<\/tr>\n<tr>\n<td>Anthropic<\/td>\n<td><code>claude-fable-5-1<\/code><\/td>\n<td align=\"right\">302,580,552<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.6-terra<\/code><\/td>\n<td align=\"right\">274,107,085<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.3-codex<\/code><\/td>\n<td align=\"right\">255,366,945<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.1-codex-max<\/code><\/td>\n<td align=\"right\">220,947,212<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.1<\/code><\/td>\n<td align=\"right\">142,533,699<\/td>\n<\/tr>\n<tr>\n<td>\u2014<\/td>\n<td><code>Unknown model<\/code><\/td>\n<td align=\"right\">69,801,632<\/td>\n<\/tr>\n<tr>\n<td>Anthropic<\/td>\n<td><code>claude-opus-4.6<\/code><\/td>\n<td align=\"right\">55,223,768<\/td>\n<\/tr>\n<tr>\n<td>Zhipu<\/td>\n<td><code>stealth\/ox-alpha<\/code><\/td>\n<td align=\"right\">22,954,876<\/td>\n<\/tr>\n<tr>\n<td>Anthropic<\/td>\n<td><code>claude-fable-5<\/code><\/td>\n<td align=\"right\">16,116,907<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.1-codex-mini<\/code><\/td>\n<td align=\"right\">12,895,478<\/td>\n<\/tr>\n<tr>\n<td>Xiaohongshu<\/td>\n<td><code>dots-3-note-prev<\/code><\/td>\n<td align=\"right\">10,166,895<\/td>\n<\/tr>\n<tr>\n<td>OpenAI<\/td>\n<td><code>gpt-5.1-codex<\/code><\/td>\n<td align=\"right\">3,916,509<\/td>\n<\/tr>\n<tr>\n<td>Xiaomi<\/td>\n<td><code>mimo-v2.5<\/code><\/td>\n<td align=\"right\">3,785,071<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/markdown-accessiblity-table><\/p>\n<p dir=\"auto\"><strong>Total for listed models:<\/strong> 27,144,044,009 tokens.<\/p>\n<hr\/>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/linux.do\/\" rel=\"nofollow\">Linux.Do<\/a> \u2014 A community for sharing and discussing technology.<\/li>\n<\/ul>\n<p dir=\"auto\">PI-Desktop is licensed under the <strong>GNU Lesser General Public License v3.0<\/strong>.<\/p>\n<p dir=\"auto\">See <a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/blob\/main\/LICENSE\">LICENSE<\/a> for details.<\/p>\n<hr\/>\n<div align=\"center\" dir=\"auto\">\n<div class=\"markdown-heading\" dir=\"auto\">\n<h3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\">Build with the model you want. Keep the workflow yours.<\/h3>\n<p><a id=\"user-content-build-with-the-model-you-want-keep-the-workflow-yours\" class=\"anchor\" aria-label=\"Permalink: Build with the model you want. Keep the workflow yours.\" href=\"#build-with-the-model-you-want-keep-the-workflow-yours\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewbox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\/><\/svg><\/a><\/div>\n<p dir=\"auto\"><strong><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop\/releases\/latest\">Download PI-Desktop<\/a><\/strong><\/p>\n<p dir=\"auto\"><sub>macOS \u00b7 Windows \u00b7 Linux<\/sub><\/p>\n<\/div>\n<hr\/>\n<p dir=\"auto\">Windows releases of PI-Desktop are digitally signed with free code signing<br \/>\nprovided by <a href=\"https:\/\/signpath.io\/\" rel=\"nofollow\">SignPath.io<\/a>, using a certificate from the<br \/>\n<a href=\"https:\/\/signpath.org\/\" rel=\"nofollow\">SignPath Foundation<\/a>.<\/p>\n<\/div>\n<p><a href=\"https:\/\/github.com\/vastsa\/PI-Desktop?utm_source=tldrdev\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Important PI-Desktop is currently in Early Preview. The project is actively developed and already usable for real coding workflows, but APIs, extension interfaces, and some desktop behaviors may continue to evolve. Most coding agents live inside a terminal, an editor extension, or a hosted service. PI-Desktop gives them a workspace of their own. Work across [&hellip;]<\/p>\n","protected":false},"author":16,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[143],"tags":[],"class_list":["post-23895","post","type-post","status-publish","format-standard","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/23895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/comments?post=23895"}],"version-history":[{"count":0,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/posts\/23895\/revisions"}],"wp:attachment":[{"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/media?parent=23895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/categories?post=23895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scannn.com\/lv\/wp-json\/wp\/v2\/tags?post=23895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}