Skip to content

cashstreamhq/cashstream

v0.2.4Apache-2.0

Understand CashStream objects and relationships, and import transactions through its MCP service.

CashStream plugin

The precision of a spreadsheet, without the friction.

Connect your agent to CashStream to manage accounts, transactions, recurring flows, and budget envelopes.

Version 0.2.4 includes a portable Agent Plugins package, a Codex package, and a Claude Code package. Both client packages are generated from the same canonical skills. Their MCP endpoint is https://cashstream.quentin-berger.fr/mcp.

Included skills

  • cashstream is reference documentation: accounts, payees, transactions and split lines, envelopes, recurring business objects, occurrences, and their relationships. Its data model and MCP contract explain balances, statuses, transfers, partial payments, and tool capabilities. Loading it does not start a workflow or change records.
  • cashstream-import-statement imports transactions from statements, CSV/PDF files, screenshots, pasted lists, or messages. It matches existing records, reconciles settled planned entries, checks duplicates, assigns split envelopes, and links known payments to scheduled occurrences before writing the decided changes through MCP. When identification, values, matches, or requested assignments are uncertain, it asks the user and waits before the affected writes. Newly inferred recurring flows are proposed with their schedule and require the user's decision.

The package intentionally has two skills: the shared documentation and the transaction-import workflow. Both use the same object model and live MCP tools.

Authentication and permissions

The service uses OAuth Authorization Code with PKCE S256 and dynamic client registration. The client opens CashStream for sign-in and consent, then uses the issued tokens for MCP requests. No API key or secret belongs in this package.

  • cashstream.read reads the connected user's accounts, transactions, payees, envelopes, and recurring schedules.
  • cashstream.write creates, changes, and archives those records and allocates money to envelopes, within the connected user's server-side permissions.

The native packages request both scopes for their included read/write workflows. For a ChatGPT connection intended only for analysis, request cashstream.read alone. The service enforces authorization independently of editable skills.

CashStream does not offer automatic bank synchronization at launch. Imports require supplied records, and reviews depend on how current the account data is.

Install in Codex

codex plugin marketplace add cashstreamhq/cashstream-plugin
codex plugin add cashstream@cashstream-marketplace

Start a new session and complete OAuth when prompted. The marketplace name and the plugins/cashstream package path are preserved from the original 0.1.0 package so existing installations keep the same identity.

The repository was transferred from Quentin-BRG/cashstream-plugin to cashstreamhq/cashstream-plugin. GitHub redirects the former clone URL; existing installations retain cashstream@cashstream-marketplace, the package paths, the public MCP endpoint, and the same OAuth scopes. New installations should use the organization URL above.

To update the marketplace:

codex plugin marketplace upgrade cashstream-marketplace

Then refresh or reinstall CashStream from that marketplace in your client.

Connect in ChatGPT

The MCP endpoint can be connected as a custom ChatGPT plugin, subject to account and workspace policies:

  1. Open Plugins, select +, then Add custom MCP server.
  2. Enter https://cashstream.quentin-berger.fr/mcp.
  3. Select OAuth and Dynamic Client Registration when registration options are offered. The service publishes its endpoints through discovery.
  4. Complete the linking flow, review the discovered tools, and test the connection.

This repository does not contain a registered ChatGPT connection ID. Publishing the GitHub repository does not register or list a plugin in the ChatGPT directory. Use the portable package for supported package-import/submission workflows and follow OpenAI's connection guide and packaging guide.

The portable mcp.json stays within the Agent Plugins 1.0.0 schema; OAuth is discovered from the service. No static bearer token is embedded in a manifest.

Claude Code preview

The Claude Code package follows the layout used by synapse-plugin:

claude plugin marketplace add cashstreamhq/cashstream-plugin
claude plugin install cashstream@cashstream-marketplace

Start a new session or reload plugins, then complete OAuth through /mcp if prompted. Static package validation does not establish interactive client or OAuth compatibility; the Claude package is a preview until that flow is tested.

Repository layout

plugin.json                         Portable Agent Plugins manifest
mcp.json                            Portable MCP configuration
skills/cashstream/                   Documentation skill and shared references
skills/cashstream-import-statement/  Transaction-import skill
assets/                             CashStream SVG symbol (without wordmark)
archive/branding/                   Original PNG (excluded from plugin packages)
plugins/cashstream/                  Generated Codex compatibility package
plugins/claude/                      Generated Claude Code compatibility package
.agents/plugins/marketplace.json     Codex repository marketplace
.claude-plugin/marketplace.json      Claude Code repository marketplace
scripts/                            Sync, validation, and ZIP packaging

The portable source of truth and generated compatibility packages follow the approach used by weave-plugin.

Develop and validate

Python 3.10 or newer is sufficient. Validation uses JSON Schema and YAML:

python -m pip install -r requirements-dev.txt
python scripts/sync_packages.py
python scripts/sync_packages.py --check
python scripts/validate_plugin.py
python scripts/build_plugin.py

Builds create dist/cashstream-portable-0.2.4.zip, dist/cashstream-codex-0.2.4.zip, and dist/cashstream-claude-0.2.4.zip. CI validates schema conformance, skill metadata, package paths, OAuth scope consistency, and generated-file parity. It also builds the three archives. Actual login, token refresh, and financial writes require separate end-to-end validation against the service; a green packaging check does not claim those pass.

Repository boundary and license

This public repository contains plugin manifests, skills, packaging scripts, catalogs, and documentation. The CashStream service, application source, database, financial records, and infrastructure are outside this distribution.

Copyright 2026 Quentin Berger. Licensed under Apache License 2.0. This license applies to the plugin distribution, not the CashStream service.