{"_id":"@baldaworks/promptkitty","_rev":"4-d4f42bb487fb0482cf580be6fd9b9e21","name":"@baldaworks/promptkitty","dist-tags":{"latest":"0.4.2"},"versions":{"0.3.0":{"name":"@baldaworks/promptkitty","version":"0.3.0","keywords":["promptkit","prompts","assembly","cli"],"license":"MIT","_id":"@baldaworks/promptkitty@0.3.0","maintainers":[{"name":"metalagman","email":"alexey.samoylov@gmail.com"}],"homepage":"https://github.com/baldaworks/promptkitty#readme","bugs":{"url":"https://github.com/baldaworks/promptkitty/issues"},"bin":{"promptkitty":"promptkitty.js"},"dist":{"shasum":"f11434a48bf2a5a3209ace0036664515d67fd227","tarball":"https://registry.npmjs.org/@baldaworks/promptkitty/-/promptkitty-0.3.0.tgz","fileCount":4,"integrity":"sha512-cwfn7Tn5XJuGLpNNt2BzrOlaCMkhJDDNV6JAiY4Mb0uBGvQx4lrMhFuZihMuprF9+Qy8ATymUq0sSVadSM5fMg==","signatures":[{"sig":"MEUCIAOlFgz7Tq/Mh8SwNwux5t199pLT+z5ggE7b4yIt4i9fAiEA6Qz0K/fTbiO7UO4t9p3HW60QnRAgWPo1SNsBZnmutHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23060},"engines":{"node":">=16"},"gitHead":"0bfe7a85942fb4e2485b2939533322373ae6a208","_npmUser":{"name":"metalagman","email":"alexey.samoylov@gmail.com"},"repository":{"url":"git+https://github.com/baldaworks/promptkitty.git","type":"git"},"_npmVersion":"11.16.0","description":"Meta package for promptkitty","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"optionalDependencies":{"@baldaworks/promptkitty-linux-x64":"0.3.0","@baldaworks/promptkitty-win32-x64":"0.3.0","@baldaworks/promptkitty-darwin-x64":"0.3.0","@baldaworks/promptkitty-linux-arm64":"0.3.0","@baldaworks/promptkitty-darwin-arm64":"0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/promptkitty_0.3.0_1784267504110_0.22693824330148948","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@baldaworks/promptkitty","version":"0.4.0","keywords":["promptkit","prompts","assembly","cli"],"license":"MIT","_id":"@baldaworks/promptkitty@0.4.0","maintainers":[{"name":"metalagman","email":"alexey.samoylov@gmail.com"}],"homepage":"https://github.com/baldaworks/promptkitty#readme","bugs":{"url":"https://github.com/baldaworks/promptkitty/issues"},"bin":{"promptkitty":"promptkitty.js"},"dist":{"shasum":"1bf19582f0411c5e1ea4e16fdb04250cba519151","tarball":"https://registry.npmjs.org/@baldaworks/promptkitty/-/promptkitty-0.4.0.tgz","fileCount":4,"integrity":"sha512-Yhx80KtFgSk7cr4DFIMftKTv3oXHU6hai515RpASruKchD8MTtZ3pnqV8S8umczwhSEkK+zbtn4T9Q800cCWbg==","signatures":[{"sig":"MEUCIBR/3tCOUDCNt6VfsbeF64Q3Urp/8paNwdDRcRcaqvIWAiEAwIJcX5XaexUSn2NX34Iwr6TSG6VeWay79JaiL+wHRo8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24914},"engines":{"node":">=16"},"gitHead":"8a3bfcbb317280d9205ecf30af813772a1b05a3c","_npmUser":{"name":"metalagman","email":"alexey.samoylov@gmail.com"},"repository":{"url":"git+https://github.com/baldaworks/promptkitty.git","type":"git"},"_npmVersion":"11.16.0","description":"Meta package for promptkitty","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"optionalDependencies":{"@baldaworks/promptkitty-linux-x64":"0.4.0","@baldaworks/promptkitty-win32-x64":"0.4.0","@baldaworks/promptkitty-darwin-x64":"0.4.0","@baldaworks/promptkitty-linux-arm64":"0.4.0","@baldaworks/promptkitty-darwin-arm64":"0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/promptkitty_0.4.0_1784271588680_0.054013420402159396","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@baldaworks/promptkitty","version":"0.4.1","keywords":["promptkit","ai-agents","agent-skills","prompt-engineering","prompts","cli","go","golang","npm","plugin"],"author":{"url":"https://github.com/baldaworks","name":"Baldaworks"},"license":"MIT","_id":"@baldaworks/promptkitty@0.4.1","maintainers":[{"name":"metalagman","email":"alexey.samoylov@gmail.com"}],"homepage":"https://github.com/baldaworks/promptkitty#readme","bugs":{"url":"https://github.com/baldaworks/promptkitty/issues"},"bin":{"promptkitty":"promptkitty.js"},"dist":{"shasum":"b974cbf1675b5daf325314982804eb6384444896","tarball":"https://registry.npmjs.org/@baldaworks/promptkitty/-/promptkitty-0.4.1.tgz","fileCount":4,"integrity":"sha512-cKX2dxZtpiAkJL9hEY+7g6iWeC1dYOsBPNSj81uuIl49DpxCWGnjiwetYfzvEOUEBK5jb0PVM8yQt+0EIqjnKg==","signatures":[{"sig":"MEUCIEtDvbom+10yX0bSG0UvJ8MN2rQreLiryl26ElKd9i4RAiEAynaBwdqup3DY0t+PylcNhlP6/GrOq7otYANyj+/Jumo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27640},"engines":{"node":">=16"},"gitHead":"175f291f33f30c8c78f47660245537acc40960a3","_npmUser":{"name":"metalagman","email":"alexey.samoylov@gmail.com"},"repository":{"url":"git+https://github.com/baldaworks/promptkitty.git","type":"git"},"_npmVersion":"11.16.0","description":"PromptKit workflows for coding agents, the command line, and Go.","directories":{},"_nodeVersion":"24.18.0","_hasShrinkwrap":false,"optionalDependencies":{"@baldaworks/promptkitty-linux-x64":"0.4.1","@baldaworks/promptkitty-win32-x64":"0.4.1","@baldaworks/promptkitty-darwin-x64":"0.4.1","@baldaworks/promptkitty-linux-arm64":"0.4.1","@baldaworks/promptkitty-darwin-arm64":"0.4.1"},"_npmOperationalInternal":{"tmp":"tmp/promptkitty_0.4.1_1784275265910_0.6579793256267576","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"bin":{"promptkitty":"promptkitty.js"},"description":"PromptKit workflows for coding agents, the command line, and Go.","engines":{"node":">=16"},"keywords":["promptkit","ai-agents","agent-skills","prompt-engineering","prompts","cli","go","golang","npm","plugin"],"license":"MIT","name":"@baldaworks/promptkitty","optionalDependencies":{"@baldaworks/promptkitty-darwin-arm64":"0.4.2","@baldaworks/promptkitty-darwin-x64":"0.4.2","@baldaworks/promptkitty-linux-arm64":"0.4.2","@baldaworks/promptkitty-linux-x64":"0.4.2","@baldaworks/promptkitty-win32-x64":"0.4.2"},"repository":{"type":"git","url":"git+https://github.com/baldaworks/promptkitty.git"},"version":"0.4.2","homepage":"https://github.com/baldaworks/promptkitty#readme","bugs":{"url":"https://github.com/baldaworks/promptkitty/issues"},"author":{"name":"Baldaworks","url":"https://github.com/baldaworks"},"gitHead":"810b5510909d3ae51738c9a9644d168d9a6d3dc7","_id":"@baldaworks/promptkitty@0.4.2","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-etqp84ZK9kS2FZ4fABNxysTYvO9RXXV8FhoSd9dZQhBMLLvEk40oaxoYoh9HB1yQ7H0vHBIYDa38NgOXNBji0g==","shasum":"d29374b2f2cfb7a3da55f9cb92bee7d37b5d690d","tarball":"https://registry.npmjs.org/@baldaworks/promptkitty/-/promptkitty-0.4.2.tgz","fileCount":4,"unpackedSize":27984,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICQ1enHx/NZQA1xyPeD/p6CRaF+v9HS4Upg0uIwVxBbkAiBJ32yPLwcdFKVRJZ9muWkAeWE3/fPKgyBUTX20S8veeg=="}]},"_npmUser":{"name":"metalagman","email":"alexey.samoylov@gmail.com"},"directories":{},"maintainers":[{"name":"metalagman","email":"alexey.samoylov@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/promptkitty_0.4.2_1784279501776_0.27268278938896784"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-17T05:51:43.982Z","modified":"2026-07-17T09:11:42.084Z","0.3.0":"2026-07-17T05:51:44.246Z","0.4.0":"2026-07-17T06:59:48.809Z","0.4.1":"2026-07-17T08:01:06.065Z","0.4.2":"2026-07-17T09:11:41.908Z"},"bugs":{"url":"https://github.com/baldaworks/promptkitty/issues"},"author":{"name":"Baldaworks","url":"https://github.com/baldaworks"},"license":"MIT","homepage":"https://github.com/baldaworks/promptkitty#readme","keywords":["promptkit","ai-agents","agent-skills","prompt-engineering","prompts","cli","go","golang","npm","plugin"],"repository":{"type":"git","url":"git+https://github.com/baldaworks/promptkitty.git"},"description":"PromptKit workflows for coding agents, the command line, and Go.","maintainers":[{"name":"metalagman","email":"alexey.samoylov@gmail.com"}],"readme":"# PromptKitty\n\n[![Test](https://github.com/baldaworks/promptkitty/actions/workflows/test.yml/badge.svg)](https://github.com/baldaworks/promptkitty/actions/workflows/test.yml)\n[![Lint](https://github.com/baldaworks/promptkitty/actions/workflows/lint.yml/badge.svg)](https://github.com/baldaworks/promptkitty/actions/workflows/lint.yml)\n[![Security](https://github.com/baldaworks/promptkitty/actions/workflows/security.yml/badge.svg)](https://github.com/baldaworks/promptkitty/actions/workflows/security.yml)\n[![Latest release](https://img.shields.io/github/v/release/baldaworks/promptkitty)](https://github.com/baldaworks/promptkitty/releases/latest)\n[![npm version](https://img.shields.io/npm/v/%40baldaworks%2Fpromptkitty)](https://www.npmjs.com/package/@baldaworks/promptkitty)\n[![Go Reference](https://pkg.go.dev/badge/github.com/baldaworks/promptkitty.svg)](https://pkg.go.dev/github.com/baldaworks/promptkitty)\n[![License: MIT](https://img.shields.io/github/license/baldaworks/promptkitty)](LICENSE)\n\n**PromptKit workflows for coding agents, the command line, and Go.**\n\nInstall PromptKitty as a plugin or native Agent Skills, then describe the engineering work you want done. Its skills discover the most relevant PromptKit template, collect every required input, run interactive intake when needed, and assemble a complete prompt. They can also turn that behavior into provider-native project instructions or a subagent profile.\n\nThe same embedded catalog is available through a standalone CLI and a deterministic Go library. PromptKitty performs runtime discovery and assembly without reading external component files or contacting a service.\n\nThe embedded snapshot is PromptKit `v0.6.1`: 15 personas, 56 protocols, 24 formats, 5 taxonomies, 71 templates, and 4 pipelines. Every declared parameter must be resolved before assembly succeeds.\n\n## Agent skills\n\nPromptKitty installs two complementary skills:\n\n| Skill | What it does | Result |\n| --- | --- | --- |\n| **PromptKitty Assemble** | Turns a natural-language engineering task into a catalog search, template selection, required-parameter intake, and final PromptKit assembly. | A raw prompt, or a handoff for project instructions or a subagent profile. |\n| **PromptKitty Author Agent Instructions** | Accepts assembled source — or asks Assemble to prepare it — and adapts the behavior to the selected agent host. | Ready-to-commit project instructions or a provider-native subagent profile. |\n\nAssemble handles both single-shot and interactive templates. Single-shot templates offer **Raw prompt**, **Project instructions**, or **Subagent profile** as the result. Interactive templates perform their first safe questioning and confirmation phase, fold the answers into the declared parameters, and then produce the final assembled source without executing the later task.\n\nAuthor Agent Instructions resolves the provider, output type, slug, and project root; validates the provider-native file; and previews a manifest and concise diff. It requires explicit confirmation before writing anything.\n\n## Install for your agent\n\nRun setup directly from npm; no global PromptKitty installation is required:\n\n```bash\nnpx --yes @baldaworks/promptkitty@latest --version\nnpx --yes @baldaworks/promptkitty@latest setup codex\n```\n\nPromptKitty supports six agent hosts. Setup installs both skills:\n\n| Host | Setup | Assemble | Author Agent Instructions |\n| --- | --- | --- | --- |\n| Codex | `npx --yes @baldaworks/promptkitty@latest setup codex` | `$promptkitty:assemble` | `$promptkitty:author-agent-instructions` |\n| Claude Code | `npx --yes @baldaworks/promptkitty@latest setup claude` | `/promptkitty:assemble` | `/promptkitty:author-agent-instructions` |\n| Grok Build | `npx --yes @baldaworks/promptkitty@latest setup grok` | `/promptkitty-assemble` | `/promptkitty-author-agent-instructions` |\n| Copilot CLI | `npx --yes @baldaworks/promptkitty@latest setup copilot` | `/promptkitty-assemble` | `/promptkitty-author-agent-instructions` |\n| OpenCode | `npx --yes @baldaworks/promptkitty@latest setup opencode` | `/promptkitty-assemble` | `/promptkitty-author-agent-instructions` |\n| Cursor | `npx --yes @baldaworks/promptkitty@latest setup cursor` | `promptkitty-assemble` skill | `promptkitty-author-agent-instructions` skill |\n\nCodex, Claude Code, Grok Build, and Copilot CLI setup use the repository's plugin marketplace. OpenCode setup writes both skills and matching commands under `.opencode/`; Cursor setup writes both skills under `.cursor/skills/`. Existing local files are preserved; use `--force` only when known PromptKitty assets should be replaced. Host CLIs and credentials remain external.\n\n## Use PromptKitty from Codex\n\nAsk Assemble for an engineering artifact or workflow instead of selecting and parameterizing a template yourself:\n\n```text\n$promptkitty:assemble Write a requirements document for deterministic offline prompt discovery.\n```\n\nThe skill searches the embedded catalog, explains any materially different template choices, inspects the selected template, and asks only for required values that are not already available from the request or repository context. It then returns the raw assembled prompt or hands the resolved source to Author Agent Instructions when you choose a reusable result.\n\nYou can also request reusable behavior directly:\n\n```text\n$promptkitty:author-agent-instructions Create a spec-writing subagent for Codex in this repository.\n```\n\nWhen no assembled source was supplied, the authoring skill asks Assemble to prepare it in source-only mode. It then collects the Codex target and slug, shows the proposed path and diff, validates the TOML, and waits for explicit approval before creating the subagent file.\n\n## Project instructions and subagents\n\nAuthor Agent Instructions uses the pinned PromptKit `author-agent-instructions` template, with current provider paths supplied by PromptKitty:\n\n| Host | Project instructions | Subagent profile |\n| --- | --- | --- |\n| Codex | `AGENTS.md` | `.codex/agents/<name>.toml` |\n| Claude Code | `.claude/rules/<name>.md` | `.claude/agents/<name>.md` |\n| Grok Build | `.grok/rules/<name>.md` | `.grok/agents/<name>.md` |\n| Copilot CLI | `.github/instructions/*.instructions.md` | `.github/agents/<name>.agent.md` |\n| OpenCode | `AGENTS.md` | `.opencode/agents/<name>.md` |\n| Cursor | `.cursor/rules/<name>.mdc` | `.cursor/agents/<name>.md` |\n\nProject guidance is maintained inside stable PromptKitty markers, so unrelated instructions remain untouched. Existing subagent profiles require an explicit overwrite confirmation. Codex and OpenCode share one managed `AGENTS.md` block when both are selected.\n\n## CLI quick start\n\nThe agent skills drive this same public CLI internally. Use it directly for shell workflows, automation, or catalog exploration.\n\nRun the CLI directly from npm without installing it:\n\n```bash\nnpx --yes @baldaworks/promptkitty@latest search \"write a requirements document\" --type template\nnpx --yes @baldaworks/promptkitty@latest show author-requirements-doc --json\n```\n\nFor repeated use, install the same native command globally from npm or with Go:\n\n```bash\nnpm install --global @baldaworks/promptkitty@latest\n# Or install with Go:\ngo install github.com/baldaworks/promptkitty/cmd/promptkitty@v0.4.2\n```\n\nThe remaining examples use the installed `promptkitty` command. Assemble the selected template after supplying every declared parameter:\n\n```bash\npromptkitty assemble author-requirements-doc \\\n  --param project_name=PromptKitty \\\n  --param description='Add deterministic offline prompt discovery' \\\n  --param context='Go library and CLI with an embedded PromptKit catalog' \\\n  --param audience='Go maintainers and coding agents'\n```\n\n`assemble` writes Markdown to stdout. Use `--output` only when a file is wanted, `--json` for the complete assembly result, and repeatable `--param-file`, `--protocol`, and `--taxonomy` flags for multiline or additional composition inputs.\n\n## BM25 relevance search\n\n`search` uses the in-memory BM25 index from [vecgo](https://github.com/hupe1980/vecgo). PromptKitty indexes component names, descriptions, remaining metadata, and complete Markdown bodies with weights `4 / 2 / 1 / 1`.\n\n```bash\npromptkitty search \"review Go code\" --type template --json\npromptkitty search \"root cause of a memory leak bug\" --type template\npromptkitty search \"thread safety\" --type protocol\n```\n\nTokenization is Unicode-aware, common query terms are suppressed, filters retain global corpus scoring, and ties use stable catalog order. Scores stay internal so the existing `Component` JSON contract remains unchanged.\n\nThe installed command performs search and assembly offline. `npx` may contact npm to acquire the package when it is not already cached; the native package then uses only the embedded catalog.\n\n## Command surface\n\n```text\npromptkitty list [--type ...] [--category ...] [--language ...] [--json]\npromptkitty search <query> [--type ...] [--json]\npromptkitty show <name> [--json]\npromptkitty assemble <template> [composition flags]\npromptkitty setup <codex|claude|grok|copilot|opencode|cursor> [--force]\n```\n\nApplications that already use Cobra can mount the same command tree:\n\n```go\ncmd := cli.NewCommand(cli.Options{Use: \"promptkit\"})\nhost.AddCommand(cmd)\n```\n\nThe reusable `cli` package keeps successful output on stdout and diagnostics on stderr. The root package remains library-first and has no CLI or process dependencies.\n\n## Go library\n\nInstall the module:\n\n```bash\ngo get github.com/baldaworks/promptkitty@v0.4.2\n```\n\nLoad the embedded catalog and assemble a fully parameterized prompt:\n\n```go\nlibrary, err := promptkitty.New()\nif err != nil {\n    return err\n}\n\nresult, err := library.Assemble(promptkitty.AssembleRequest{\n    Template: \"investigate-bug\",\n    Params: map[string]string{\n        \"problem_description\": \"Parser crashes on empty input\",\n        \"code_context\":        \"src/parser.c\",\n        \"environment\":         \"Linux amd64\",\n    },\n})\nif err != nil {\n    return err\n}\n\nfmt.Println(result.Markdown)\n```\n\nBrowse the same immutable catalog through Go:\n\n```go\ntemplates := library.List(promptkitty.Filter{Type: promptkitty.ComponentTemplate})\nmatches := library.Search(\"security review\", promptkitty.Filter{Type: promptkitty.ComponentTemplate})\ndetail, err := library.Show(\"review-code\")\npipelines := library.Pipelines()\n```\n\n`NewFromFS` loads a compatible private catalog for tests or applications. Runtime assembly remains one-pass, deterministic, and strict about unresolved parameters.\n\n## npm distribution\n\nReleases publish `@baldaworks/promptkitty` with statically linked native executables for macOS and Linux on amd64/arm64 and Windows on amd64. The CLI quick start runs this package through `npx` or installs it globally with npm. Omnidist builds every target with `CGO_ENABLED=0`. The npm launcher selects the matching binary, so users need neither Go nor CGO tooling.\n\n## Updating the PromptKit snapshot\n\nChange only the `ref` field in [`content/upstream.json`](content/upstream.json), then run:\n\n```bash\ngo generate ./...\n```\n\nThe generator resolves that ref through GitHub, downloads the archive, copies supported components and the upstream license, and rewrites the resolved commit and SHA-256 inventory. Review content, license, commit, and inventory changes together. Do not hand-edit pinned component files.\n\n## About PromptKit\n\n[Microsoft PromptKit](https://github.com/microsoft/PromptKit) is a composable prompt engineering library organized around personas, protocols, taxonomies, formats, templates, and pipelines. Its [bootstrap workflow](https://github.com/microsoft/PromptKit/blob/main/bootstrap.md) inspired PromptKitty's output chooser and agent-instruction authoring. PromptKitty adapts discovery, interactive intake, and parameter gathering to the stable `search`, `show`, and `assemble` CLI instead of reading or rewriting upstream files.\n\n## License\n\nPromptKitty's original Go code and documentation are available under the root [MIT License](LICENSE), copyright Alexey Samoylov.\n\nThe embedded Microsoft PromptKit content remains under Microsoft's MIT license and attribution. Its exact license copy is stored at [`third_party/promptkit/LICENSE`](third_party/promptkit/LICENSE); see [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md) for provenance and third-party terms.\n\nPromptKitty uses vecgo's Apache-2.0-licensed BM25 implementation. The exact license is stored at [`third_party/vecgo/LICENSE`](third_party/vecgo/LICENSE) and included with statically linked npm artifacts.\n","readmeFilename":"README.md"}