@techhaus/pi-frank

Native F.R.A.N.K provider for Pi Coding Agent

Packages

Package details

extension

Install @techhaus/pi-frank from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@techhaus/pi-frank
Package
@techhaus/pi-frank
Version
0.1.3
Published
Sep 18, 2026
Downloads
457/mo · 10/wk
Author
eurothrottle
License
MIT
Types
extension
Size
146.3 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./dist/index.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

F.R.A.N.K for Pi Coding Agent

This Pi package adds one native provider and model: frank/frank, shown as F.R.A.N.K. It does not replace, hide, or reconfigure any of Pi's existing providers or models.

Install

Install the public package with Pi's native package manager:

pi install npm:@techhaus/pi-frank

This release supports Pi Coding Agent 0.84.4–0.84.x and 0.85.x on Node.js 22.19.0 or newer, including ordinary unmodified Pi installations and API-compatible custom builds.

Start or restart Pi, then use Pi's built-in /login flow and choose F.R.A.N.K. Pi displays a short device code and the F.R.A.N.K approval URL. Complete approval in your browser. Never paste a Venice API key, F.R.A.N.K token, or recovery code into Pi.

After approval, Pi automatically makes frank/frank the active model and saves that selection without replacing unrelated settings. If you deliberately select a model while login is pending, your choice takes precedence. Later sessions continue using F.R.A.N.K until you choose a different model.

Approval requires eligible TECH HAUS Premium membership, current Ethical Use Policy consent, Discord-confirmed eligibility, and a Venice API key already configured through F.R.A.N.K. Venice usage is separate from TECH HAUS membership and remains the member's responsibility.

Before login, F.R.A.N.K is available in /login. After login, frank/frank is available in /model alongside every normal Pi model. Selecting another model bypasses F.R.A.N.K; selecting frank/frank routes the turn through the full F.R.A.N.K service.

When Pi thinking is enabled, Pi's native thinking area shows concise F.R.A.N.K-authored field notes grounded in the current objective and recorded native actions. F.R.A.N.K's server-side voice direction varies these notes by task and suppresses repeated delivery patterns; the connector contains no canned stage sayings. These notes are separate from tool results and final verification, and are not raw model chain-of-thought. The service filters hidden prompts, credentials and unsafe narration before delivery. If narration is unavailable, local coding continues without interruption. With Pi thinking disabled, these field notes remain hidden and no narration call is made.

Update

Re-run the same command to install the latest published version:

pi install npm:@techhaus/pi-frank

Pi requires static per-token prices in model metadata, while F.R.A.N.K can use multiple Venice stages and models in one turn. The package therefore reports the authoritative usage returned by F.R.A.N.K when available; a zero or partial Pi cost display is not a claim that Venice usage is free. Members remain responsible for their Venice usage.

For a non-production or self-hosted service, set FRANK_URL to its HTTPS origin before login. Plain HTTP is accepted only for localhost and 127.0.0.1 testing.

Connection commands

  • /frank status checks the configured connection.
  • /frank devices lists authorized F.R.A.N.K device grants.
  • /frank disconnect revokes this device's server grant.

/frank disconnect never edits Pi's credential store. After revocation, use Pi's built-in /logout command and choose F.R.A.N.K to remove the local credential safely.

Troubleshooting

  • F.R.A.N.K is missing: confirm the supported Pi and Node.js versions, re-run the installation command, and restart Pi. Use /login and choose F.R.A.N.K before looking for frank/frank in the authenticated model list.
  • Login is denied or expires: check your membership and service eligibility in the browser, then run /login again for a new code. Device authorization lasts at most 15 minutes. Never send a device code, token, or Venice key to support.
  • The service is unreachable or a request times out: check your network and any explicit FRANK_URL configuration, then retry. Device, refresh, and connection-command requests time out after 30 seconds. A timed-out login needs a new /login attempt; an interrupted coding turn can be retried in the current Pi session.
  • Login succeeds but the model stays unchanged: a model you chose during login wins. Pi 0.85.1 can also show a default-model warning after F.R.A.N.K is already selected. Check Pi's active model indicator; use /model to select frank/frank if needed.
  • The default could not be saved: check that Pi's settings.json is valid JSON and writable, then select frank/frank with /model. The connector leaves malformed settings intact and reports when persistence fails.
  • The session is no longer authorized: use /frank status. For an expired or revoked connection, use /logout for F.R.A.N.K and reconnect with /login. If disconnect times out, server revocation is unconfirmed; retry /frank disconnect before local logout.
  • Baseline tests or source inventory cannot proceed: follow the connector's recovery message. Keep the existing source intact until a requested baseline has run. Enable a local shell or test tool when it is missing, and review failed tool output before retrying.
  • A run reaches its tool-call limit or stops a repeated cycle: review the work already completed and continue with a smaller remaining task. Do not discard unrelated changes to restart a run.
  • The configured model chain is unavailable: retry later or check Discord for service status. The service administrator manages the underlying models; you do not need to select a Venice model in Pi.

For help, use the TECH HAUS Discord community. Include the connector, Pi, and Node.js versions, your operating system, the public error message, and the steps that failed. Do not share authentication files, device codes, environment dumps, or private repository content. npm remains the installation and update channel; no GitHub account is required.

Security model

Pi stores only the short-lived access token, rotating refresh token, opaque encrypted credential capsule, and grant identifiers returned by F.R.A.N.K. The member's Venice key remains sealed inside the server-produced capsule. The package never logs or prints those values and never reads or writes auth.json directly.

The connector registers each installation with a generic platform label. It does not transmit the machine hostname or local username.

Use of F.R.A.N.K is governed by TECH HAUS membership terms and the Ethical Use Policy.

License and service access

This connector is available under the MIT License. That license applies only to the connector software in this package. It does not provide TECH HAUS membership, access to the hosted F.R.A.N.K service, Venice model usage, rights to F.R.A.N.K or TECH HAUS names and marks, or any other hosted-service entitlement. Those remain governed by their applicable terms and eligibility requirements.

Announcements and member support are provided through the TECH HAUS Discord community.

Source code

The complete TypeScript connector source is included in the npm package under src/. It contains only the public Pi integration; F.R.A.N.K's proprietary server-side material is not distributed.