@hypn4/chappie
Maintained Chappie fork connecting ChatGPT to Pi and Oh My Pi
Package details
Install @hypn4/chappie from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@hypn4/chappie- Package
@hypn4/chappie- Version
0.6.0-rc.7- Published
- Oct 1, 2026
- Downloads
- 510/mo · 510/wk
- Author
- hypn4
- License
- MIT
- Types
- extension
- Size
- 526.6 KB
- Dependencies
- 3 dependencies · 7 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
Chappie
Use ChatGPT to work through Pi or Oh My Pi (OMP): edit local files, run commands, call agent extensions, exchange files and images, and move between sessions on one or more devices.
This is the maintained hypn4/chappie fork of
zetaloop/chappie, published as
@hypn4/chappie. It includes OMP support and connection and file-transfer fixes.
The original MIT license and attribution are retained.
Setup
The broker requires Bun 1.4.2 or newer. The repository, standalone broker, build, tests, package installation, and CI all use Bun.
Install Chappie for the host you use:
# Pi
pi install npm:@hypn4/chappie
# OMP
omp plugin install @hypn4/chappie
Omitting the version selects npm's latest tag. To install or update that
version explicitly, run omp plugin install @hypn4/chappie@latest; use
omp plugin list to inspect installed plugins. Release candidates are also
available on next. Pin a version, such as @hypn4/chappie@0.6.0-rc.1,
for reproducible installations, and pin the same version in the broker command.
Remove the upstream package or stop loading the source extension before enabling
this package; both register the same chappie/chatgpt provider. Updating the
broker does not update the OMP plugin: keep both on the same version.
Run the broker through otunnel. Use
otunnel profiles list to find the active profile; it is typically
~/.config/tunnel-client/chappie.yaml.
# Pi
mcp:
commands:
- channel: main
command: pi --chappie
For OMP, run the standalone broker with Bun.
It works with unmodified OMP; it does not require omp --chappie or an OMP fork.
mcp:
commands:
- channel: main
command: bun x --package @hypn4/chappie@latest chappie-omp
bunx is Bun's alias for bun x; prefer bun x in shared configuration
so the same command works on macOS, Linux, and Windows. --package selects
the package that provides chappie-omp. The first run may download
dependencies; later runs use Bun's package cache. This command does not install
the OMP plugin for you.
Make sure bun is on otunnel's PATH. If necessary, use Bun's actual
absolute path rather than a $HOME or %USERPROFILE% placeholder. This
avoids relying on shell expansion or the plugin's internal install path.
Start the tunnel with the updated profile:
otunnel run --profile chappie
Add the tunnel as a developer-mode app in ChatGPT, then start the agent in a project:
# Pi
pi --provider chappie --model chatgpt
# OMP
omp --model chappie/chatgpt
Call sessions or init from ChatGPT to connect to the agent session. When using
an OMP profile or custom PI_CONFIG_DIR / PI_CODING_AGENT_DIR, launch otunnel
and OMP with the same environment so the broker and session resolve the same socket.
Development
Install dependencies and run the repository checks:
bun install
bun run check
bun run build
For a local OMP checkout, point the otunnel profile at the built broker:
mcp:
commands:
- channel: main
command: bun /absolute/path/to/chappie/dist/src/cli.omp.js
Then load the source extension directly:
omp --no-extensions -e /absolute/path/to/chappie/src/index.omp.ts --model chappie/chatgpt
Restart otunnel after changing its broker command, then use sessions or
init from ChatGPT to verify that the OMP session is visible.
After changing tool schemas, refresh the plugin connection in ChatGPT and test
in a new conversation. Restarting the broker alone does not refresh cached tools.
Pi and OMP use different local sockets by default: ~/.pi/agent/chappie.sock
and ~/.omp/agent/chappie.sock (named pipes on Windows). The broker and agent
must use the same endpoint; the host name alone does not filter sessions.
bun run check runs formatting, type checks, and the Bun test suite.
bun run test:omp builds the package and checks a temporary native OMP session
without model inference. CI runs current OMP on Windows, verifies the OMP 18.3
floor and packaged current OMP on Linux, and exercises otunnel 0.2 on Linux.
GitHub Actions publishes releases to npm using OIDC and the committed
publishConfig.tag; routine releases do not require an npm login.
See publishing for the release process.
Usage
Chappie exposes common coding tools directly and every active agent tool through tools and call. chat sends an assistant message to the agent, agent input accompanies later tool results, and transfer moves files between ChatGPT and the agent or between connected devices. history reads recent agent messages and activity with timestamps. ask can present a persistent question in ChatGPT when webpage questions are enabled.
See the tool guide for session selection, history, agent tools, webpage questions, and file transfer.
Configuration
chappie.json lives in the selected host's agent directory:
- Pi:
~/.pi/agent/chappie.json - OMP:
~/.omp/agent/chappie.json
Local-only use needs no network settings. For sessions on another device, configure mutual TLS with a private CA and a separate certificate/key per device. The server certificate must cover the broker's hostname. Certificate paths are relative to the agent directory; absolute paths are also accepted.
Broker:
{
"listen": true,
"listenHost": "192.168.1.10",
"tls": { "ca": "ca.pem", "cert": "broker.pem", "key": "broker-key.pem" }
}
Remote agent:
{
"connect": "broker.local",
"tls": { "ca": "ca.pem", "cert": "client.pem", "key": "client-key.pem" }
}
Replace the address and hostname with the broker's actual values. TCP defaults
to port 24274 and a loopback listener unless listenHost is set. A numeric
listen or connect host with :port selects another port. Only the broker
runs otunnel. Authenticated devices share local-agent privileges; use a CA
trusted only for those devices. Never distribute the CA's private key.
Existing plaintext listen/connect configurations must add tls on both
sides. Plaintext fallback is deliberately not supported. Local Unix sockets
and Windows named pipes do not require certificates.
Set ask to false to disable webpage questions.
Set cooldown to the participation cooldown in seconds. The default is 10;
0 disables observer reuse for closely spaced initializations.
OMP users can set localTools to true to register the opt-in
sessions, remote_tools, remote_call, remote_chat, and
history collaboration tools. They are active only while the OMP session is
using a non-Chappie model; selecting the Chappie provider keeps ChatGPT-driven
execution isolated. The broker also requires localTools=true before it will
relay remote_call or remote_chat; remote deployments therefore enable
it on both the source OMP side and the broker side. remote_call and
remote_chat require a stable operationId; reuse it only when retrying
the same remote operation so the broker can prevent duplicate native execution.
The default is false.
Closely spaced initializations from the same ChatGPT conversation receive guidance to observe through history without repeating exports or the completion response. See participation.