@pancato/sbti-cli
v0.1.3
Published
🧠 Offline-first, dual-mode SBTI personality test CLI for humans 🧑💻 and AI agents 🤖
Downloads
396
Maintainers
Readme
sbti-cli 🧠
An offline-first, dual-mode SBTI CLI for humans and AI agents.
sbti-cli is being built as a modern TypeScript command-line tool that brings
SBTI into an agent-friendly workflow. The project aims to support:
- interactive terminal testing for human users
- stable JSON interfaces for AI and automation
- bundled local snapshot data for offline-first usage
- optional upstream refresh commands when you explicitly want new data
Installation 🚀
You can install sbti-cli globally using your favorite package manager:
# Using npm
npm install -g @pancato/sbti-cli
# Using pnpm
pnpm add -g @pancato/sbti-cli
# Using yarn
yarn global add @pancato/sbti-cliStatus
The project is already usable in local development. The current implementation includes:
- interactive
sbti test - read-only reference commands such as
types,show, anddimensions - machine-oriented
score,batch, andexport updatefor fetching and normalizing upstream dataanalyze-promptfor explicit heuristic inference
Tech Stack
- TypeScript
- Vite
- Vitest
cac@clack/promptsyoctocolorszod
Command Surface
Human-friendly commands:
sbti testsbti show <typeCode>sbti typessbti dimensionssbti update
Agent-friendly commands:
sbti score --answers <file|json>sbti batch --input <file>sbti export --format jsonsbti analyze-prompt --stdin
AI Agent Integration 🤖
sbti-cli is specifically designed to be called by AI Agents (like GPT-4, Claude, or local LLMs).
- JSON Output: Always use the
--jsonflag to get machine-readable output. This allows agents to parse results without regex. - Stateless Scoring: Use
sbti score --answers '{"q1": 1, ...}' --jsonto perform calculations without managing local state. - Heuristic Inference: Agents can pipe user descriptions into
sbti analyze-prompt --stdin --jsonto get a preliminary SBTI type inference based on text analysis. - Reference Data: Agents can use
sbti types --jsonorsbti show <TYPE> --jsonto look up personality descriptions and characteristics to provide better context in conversations.
Example Usage
Run the interactive test:
node ./dist/bin/sbti.js testScore a JSON payload:
node ./dist/bin/sbti.js score --answers '{"q1":1,"q2":1,"q3":1,"q4":1,"q5":1,"q6":1,"q7":1,"q8":1,"q9":1,"q10":1,"q11":1,"q12":1,"q13":1,"q14":1,"q15":1,"q16":1,"q17":1,"q18":1,"q19":1,"q20":1,"q21":1,"q22":1,"q23":1,"q24":1,"q25":1,"q26":1,"q27":1,"q28":1,"q29":1,"q30":1}' --jsonInspect a type:
node ./dist/bin/sbti.js show CTRL --jsonInfer from freeform text:
printf '喜欢计划、很强控制感、总想把事情安排好' | sbti analyze-prompt --stdin --jsonDevelopment
Install dependencies:
npm install --registry=https://registry.npmjs.org/Run tests:
npm testRun type-checking:
npm run typecheckBuild the CLI:
npm run buildRepository Documents
- Design spec: docs/superpowers/specs/2026-04-11-sbti-cli-design.md
- Implementation plan: docs/superpowers/plans/2026-04-11-sbti-cli.md
License
This repository's original code is licensed under MIT. See LICENSE.
Important: upstream SBTI content is a separate matter. If this project later bundles questionnaire text, type descriptions, normalized snapshots, or other derived upstream material, that content is not automatically MIT. See NOTICE for the attribution and ownership boundary.
