@techhaus/pi-frank0.1.6
Native F.R.A.N.K provider for Pi Coding Agent
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
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 is tested with Pi Coding Agent 0.84.4, 0.85.1, 0.86.1, 0.87.1, 0.99.2, 1.0.0 and 1.0.1, and requires Node.js 22.19.0 or newer. It is meant for ordinary unmodified Pi installations and API-compatible custom builds. Its npm peer range also accepts the other releases of those Pi lines and later Pi 1.x releases (Pi itself does not check peer ranges when it installs a package). Those other releases are not tested, and the range is not a promise that they work. Pi published no 0.88 to 0.98 releases.
Pi 0.86 changed how it passes the system prompt and tool list to providers. Connector 0.1.4 and newer read both the old and the new form. Connector 0.1.3 and earlier read only the old form: with Pi 0.86 or newer they send F.R.A.N.K no system prompt and no tools, so coding tasks fail. Update the connector (see Update) before or together with a Pi update to 0.86 or newer.
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 statuschecks the configured connection./frank deviceslists authorized F.R.A.N.K device grants./frank disconnectrevokes 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
/loginand choose F.R.A.N.K before looking forfrank/frankin the authenticated model list. - Coding tasks fail after a Pi update (for example "could not verify the required local
work"): Pi 0.86 and newer need connector 0.1.4 or newer.
pi --versionprints the Pi version.pi listprints the folder the connector is installed in; theversionfield of thepackage.jsonin that folder is the connector version. To update, re-run the command under Update, then restart Pi. - Login is denied or expires: check your membership and service eligibility in the
browser, then run
/loginagain 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_URLconfiguration, then retry. Device, refresh, and connection-command requests time out after 30 seconds. A timed-out login needs a new/loginattempt; 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
/modelto selectfrank/frankif needed. - The default could not be saved: check that Pi's
settings.jsonis valid JSON and writable, then selectfrank/frankwith/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/logoutfor F.R.A.N.K and reconnect with/login. If disconnect times out, server revocation is unconfirmed; retry/frank disconnectbefore 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.