@mattherzog/gtmcode-pi

Local-first Pi extension for GTMCode outbound motions, readiness checks, and draft-only GTM write plans.

Packages

Package details

extension

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

$ pi install npm:@mattherzog/gtmcode-pi
Package
@mattherzog/gtmcode-pi
Version
0.0.1
Published
Jul 24, 2026
Downloads
not available
Author
mattherzog
License
ISC
Types
extension
Size
186.3 KB
Dependencies
3 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "dist/pi-native.js"
  ],
  "image": "https://raw.githubusercontent.com/mherzog4/gtmcode/main/packages/pi/assets/pi-gallery.png"
}

Security note

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

README

@mattherzog/gtmcode-pi

Local-first Pi extension package for GTMCode outbound motions.

GTMCode turns an outbound motion into a structured local workspace: ICP, offer, cold email, call script, CRM mapping, tracking plan, readiness checks, draft write plans, and learning memory. The Pi package exposes that runtime as slash commands and native terminal widgets without contacting live GTM systems.

Install

pi install npm:@mattherzog/gtmcode-pi

To try it without adding it to Pi settings, run pi -e npm:@mattherzog/gtmcode-pi.

From this repository, build before loading the package:

pnpm install
pnpm build

For a self-contained local Pi package directory with workspace dependencies included, deploy it with pnpm:

pnpm --filter @mattherzog/gtmcode-pi deploy --prod --legacy dist/pi-package/gtmcode-pi
pi -e dist/pi-package/gtmcode-pi

Published packages use the @mattherzog/gtmcode-* scope. Historical @gtmcode/* names are internal source-code aliases only; the packed tarball resolves them to the published packages.

Pi Package Metadata

The package advertises itself for the Pi gallery with:

{
  "keywords": ["pi-package"],
  "pi": {
    "extensions": ["dist/pi-native.js"],
    "image": "https://raw.githubusercontent.com/mherzog4/gtmcode/main/packages/pi/assets/pi-gallery.png"
  }
}

The Pi-native extension entrypoint is dist/pi-native.js. The programmatic test seam remains available from dist/index.js through the named createGtmcodePiExtension export.

Commands

The extension exposes these local-only commands:

  • /gtm:health
  • /gtm:new-outbound
  • /gtm:open-motion
  • /gtm:check-motion
  • /gtm:score-icp
  • /gtm:write-sequence
  • /gtm:write-call-script
  • /gtm:map-crm
  • /gtm:write-learning
  • /gtm:stack-list
  • /gtm:inspect-crm
  • /gtm:draft-sequence
  • /gtm:list-write-plans
  • /gtm:show-write-plan
  • /gtm:approve-write-plan
  • /gtm:apply-write-plan
  • /gtm:reject-write-plan
  • /gtm:queue
  • /gtm:account
  • /gtm:history

Write-plan review commands accept normal slash-command arguments:

/gtm:approve-write-plan <id> --approver <name>
/gtm:reject-write-plan <id> --approver <name> --reason <text>
/gtm:apply-write-plan <id> --approver <name>

Widgets

  • gtm:motion
  • gtm:readiness
  • gtm:write-plan
  • gtm:stack
  • gtm:extensions
  • gtm:write-plans
  • gtm:queue
  • gtm:account
  • gtm:history

Run /render-<widget-name> to pin a native Pi widget above the editor, for example /render-gtm:readiness seed-founder-outbound. Print mode emits the same content as text, while JSON mode emits it as a custom message. Widget output includes structured lines, next actions, issue diagnostics, and markdown content.

Safety Model

GTMCode v0 is draft-only for risky GTM actions.

  • It can create and update local motion files.
  • It can append local JSONL learning memory.
  • It can inspect fixture-backed CRM and sequencer schemas.
  • It can draft persisted write plans for review.
  • It can approve, reject, and mark write plans as applied in the local audit trail.
  • It does not send email, place calls, launch sequences, delete records, or mutate live CRM systems.

Programmatic Load

import { createGtmcodePiExtension } from "@mattherzog/gtmcode-pi";

const extension = createGtmcodePiExtension();
console.log(extension.healthCheck());
console.log(extension.listCommands().map((command) => command.name));

To import the native Pi adapter directly:

import registerGtmcodePiNativeExtension from "@mattherzog/gtmcode-pi/native";

Verify

pnpm verify

pnpm verify builds every workspace package, runs the runtime, adapter, tools, skills, Pi, and CLI tests, then runs the CLI smoke path.