PI Desktop AI Agent by vastsa

by vastsa• 7.6k•• Scanned•Claim this listing•Request removal
Coding Agentsai agentcoding agentdesktop appelectronglobal

Local-first AI coding agent desktop: Electron + Rust host core + pi Agent Harness + user-installable plugins

PI Desktop is an open-source ai agent by vastsa, written mainly in TypeScript, with 7,566 GitHub stars and the LGPL-3.0 license. Its code was last updated Nov 1, 2026.

Scan summary: scanned Nov 5, 2026 at commit b4430db. Seen able to read environment and secrets, connect to the internet. Scan policy

Scanned
Full scan at b4430db · Nov 5, 2026
Scanned
Static code scanwarn
Secrets scanpass
Dependency audit56 known vulnerabilitieswarn
Manifestnonewarn
Buildfail
Boot & handshaken/a
Network egresswarn
Reproducible (×3)n/a

Findings (63)

  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • high
    credential-access issue
    Details are available to the maintainer after claiming this listing.
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:137
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:138
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:139
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:146
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:147
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:148
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:164
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-mcp-market.mjs:174
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-skill-market.mjs:134
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-skill-market.mjs:135
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-skill-market.mjs:152
  • medium
    Contacts a hard-coded IP address instead of a domain name.
    scripts/e2e-skill-market.mjs:163
  • medium
    electron@43.6.0: 7 known vulnerabilities
    GHSA-2p8c-gr87-2676, GHSA-3qxv-5xgr-q7w9, GHSA-997q-gvvc-jwmx, GHSA-fw47-9c62-h3vw, GHSA-h3v5-h239-pg29 +2 more
    pnpm-lock.yaml
  • medium
    undici@6.29.0: 5 known vulnerabilities
    GHSA-2m5v-pch6-74hx, GHSA-4qv8-2p9j-2685, GHSA-9fm3-97px-rjf6, GHSA-qrxm-fqhp-jwvm, GHSA-xjj6-f33q-929c
    pnpm-lock.yaml
  • medium
    undici@7.30.0: 8 known vulnerabilities
    GHSA-2m5v-pch6-74hx, GHSA-4qv8-2p9j-2685, GHSA-4w7w-5xrc-9h26, GHSA-55wc-3pg8-jfw6, GHSA-9fm3-97px-rjf6 +3 more
    pnpm-lock.yaml
  • medium
    undici@8.10.2: 8 known vulnerabilities
    GHSA-2m5v-pch6-74hx, GHSA-4qv8-2p9j-2685, GHSA-4w7w-5xrc-9h26, GHSA-55wc-3pg8-jfw6, GHSA-9fm3-97px-rjf6 +3 more
    pnpm-lock.yaml
  • medium
    vite@6.4.3: 5 known vulnerabilities
    GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-9jrq-w75r-8gcw, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22
    pnpm-lock.yaml
  • medium
    vite@7.3.6: 5 known vulnerabilities
    GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-9jrq-w75r-8gcw, GHSA-r825-w8mm-5pxw, GHSA-rq7h-c2jc-7f22
    pnpm-lock.yaml
  • medium
    zod@4.4.3: 1 known vulnerability
    GHSA-mrhx-c7xc-m3w5
    pnpm-lock.yaml
  • medium
    Install or build failed in a clean environment
    ns.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks apps/desktop build: - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. apps/desktop build: Done sh: 1: cargo: not found [ELIFECYCLE] Command failed with exit code 127.
  • medium
    Install contacted hosts other than package registries
    34.1.16.104.in-addr.arpa
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/agent-runtime/src/image-generation/image-generation.test.ts:205
  • low
    In tests/examples/docs: Touches a sensitive credential location (SSH keys, cloud credentials, browser data or wallets). Expected for some tools, such as browser automation; check why.
    packages/plugin-sdk/src/fs-policy.test.ts:94
  • low
    In tests/examples/docs: Touches a sensitive credential location (SSH keys, cloud credentials, browser data or wallets). Expected for some tools, such as browser automation; check why.
    packages/plugin-sdk/src/fs-policy.test.ts:99
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/plugin-sdk/src/net-policy.test.ts:162
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/plugin-sdk/src/net-policy.test.ts:175
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:445
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:446
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:447
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:459
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:460
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:461
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:477
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/mcp-registry.test.ts:527
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/public-network.test.ts:360
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/public-network.test.ts:362
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/skill-catalog.test.ts:172
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/skill-catalog.test.ts:173
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/skill-catalog.test.ts:188
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    packages/shared/src/skill-catalog.test.ts:199
  • low
    In tests/examples/docs: Turns off TLS certificate checking, allowing traffic interception.
    scripts/e2e/provider-client-certificate.ts:32
  • low
    Possible example credential in docs/tests: generic-api-key
    docs/spec/03-runtime/19-remote-agent-control-protocol.md:831
  • low
    Possible example credential in docs/tests: private-key
    scripts/e2e/fixtures/certificates/localhost-key.pem:1
  • low
    ctutils@0.4.2: 1 known vulnerability
    RUSTSEC-2026-0385
    Cargo.lock
  • low
    rustls@0.23.45: 4 known vulnerabilities
    RUSTSEC-2026-0346, RUSTSEC-2026-0347, RUSTSEC-2026-0348, RUSTSEC-2026-0349
    Cargo.lock
  • low
    rustls-webpki@0.103.15: 1 known vulnerability
    RUSTSEC-2026-0382
    Cargo.lock
  • low
    tokio@1.53.1: 1 known vulnerability
    RUSTSEC-2026-0386
    Cargo.lock
  • low
    webpki-roots@1.0.9: 1 known vulnerability
    RUSTSEC-2026-0381
    Cargo.lock
  • low
    @vitest/mocker@4.1.11: 2 known vulnerabilities
    GHSA-qxg6-89mg-rqv8, GHSA-xp26-3454-mjgp
    pnpm-lock.yaml
  • low
    fast-uri@3.1.8: 4 known vulnerabilities
    GHSA-333x-w4r6-6crp, GHSA-w74x-v6f9-j3xg, GHSA-wjr9-j795-jxcr, GHSA-xhq7-xmqj-769h
    pnpm-lock.yaml
  • low
    katex@0.16.47: 1 known vulnerability
    GHSA-238p-pmpm-9mq7
    pnpm-lock.yaml
  • low
    minimatch@10.2.6: 1 known vulnerability
    GHSA-g3hv-75wg-m249
    pnpm-lock.yaml
  • low
    minimatch@9.0.9: 1 known vulnerability
    GHSA-g3hv-75wg-m249
    pnpm-lock.yaml
  • low
    No manifest declaring network access and environment variables (agent.json)

Network activity

During install
34.1.16.104.in-addr.arpanodejs.orgregistry.npmjs.org
While running
Not run — the code wasn't started in this scan

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

PI Desktop alternatives

View more →

Similar ai agents in Coding Agents, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
PI Desktop (this page)
vastsa
7.6kLGPL-3.0Nov 1, 2026Scanned, no flagged issues
AutoGPT
Significant-Gravitas
188kNone foundNov 1, 2026Not scanned yet
Langchain
langchain-ai
149kMITNov 1, 2026Scanned, no flagged issues
Gemini CLI
google-gemini
109kApache-2.0Nov 1, 2026Scanned, no flagged issues
MetaGPT
FoundationAgents
71kMITJan 21, 2026Scanned, no flagged issues
Oh My Openagent
code-yeongyu
71kNone foundNov 1, 2026Not scanned yet