omp packages

@techhaus/pi-frank0.1.6

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

eurothrottle Published 16 days ago MIT ~653 downloads/mo

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.

Did it work for you?

Result

One report per person. A new report replaces your old one.

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 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.
  • 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 --version prints the Pi version. pi list prints the folder the connector is installed in; the version field of the package.json in 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 /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.