npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@feniix/pi-sequential-thinking

v5.0.3

Published

Sequential Thinking extension for pi — structured progressive thinking through defined stages, also runnable as an MCP stdio server

Downloads

554

Readme

@feniix/pi-sequential-thinking

Sequential Thinking extension for pi and MCP — structured progressive thinking through defined cognitive stages.

Features

  • Process Thought (process_thought): Record and analyze sequential thoughts with stage metadata.
  • Session-Scoped History: Use the default session or named session_id values for independent thinking threads.
  • Get History (get_thinking_history): Read bounded, paginated session history.
  • Get Status (get_thinking_status): Inspect content-free storage/config diagnostics and state fingerprints.
  • Generate Summary (generate_summary): Summarize one thinking session.
  • Clear History (clear_history): Reset one thinking session.
  • Export/Import Session (export_session, import_session): Move session JSON files with validation and receipts.
  • MCP-Compatible Aliases: Accept snake_case fields and camelCase aliases such as thoughtNumber and totalThoughts.
  • Dynamic Depth: If thought_number exceeds total_thoughts, the incoming thought is normalized to the larger total.
  • Configurable Output Limits: Client-side byte and line truncation for pi.
  • Pi + MCP Adapters: The same portable tools run as a pi extension or stdio MCP server.
  • Native TypeScript: No dependency on the original MCP server implementation; the MCP server is packaged with this module.

Install

pi install npm:@feniix/pi-sequential-thinking

Ephemeral (one-off) use:

pi -e npm:@feniix/pi-sequential-thinking

MCP Usage

This package also exposes the same tool surface as a stdio MCP server for MCP-aware hosts such as Claude Desktop, Claude Code, and other mcp.json clients.

Run the MCP server directly with npx:

npx -y @feniix/pi-sequential-thinking

This works because the package exposes a single binary, pi-sequential-thinking-mcp, which npx can infer from the package name.

Example MCP client configuration:

{
  "mcpServers": {
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@feniix/pi-sequential-thinking"]
    }
  }
}

Optional MCP environment configuration:

{
  "mcpServers": {
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@feniix/pi-sequential-thinking"],
      "env": {
        "MCP_STORAGE_DIR": "~/.my-thinking-sessions",
        "SEQ_THINK_CONFIG_FILE": "~/.config/pi-sequential-thinking.json"
      }
    }
  }
}

If your MCP host cannot infer package binaries reliably, use the explicit binary form instead:

npx -y --package @feniix/pi-sequential-thinking pi-sequential-thinking-mcp

MCP uses environment variables, the optional SEQ_THINK_CONFIG_FILE JSON file, and pi settings files described below. Pi-only CLI flags such as --seq-think-storage-dir are not read by the MCP stdio server.

Configuration

Default Configuration

Works out of the box. The default session is stored at:

~/.mcp_sequential_thinking/current_session.json

Named sessions are stored under:

~/.mcp_sequential_thinking/sessions/<session_id>.json

default is reserved as the default-session label and cannot be used as a named session_id.

Environment Variables

export MCP_STORAGE_DIR="~/.my-thinking-sessions"
export SEQ_THINK_MAX_BYTES=102400
export SEQ_THINK_MAX_LINES=5000

MCP_STORAGE_DIR affects both pi and MCP storage. SEQ_THINK_MAX_BYTES and SEQ_THINK_MAX_LINES configure pi-side output truncation; the MCP server returns full structured tool output and leaves display truncation to the host.

Settings File

Use pi's standard settings locations:

  • project: .pi/settings.json
  • global: ~/.pi/agent/settings.json

Under the pi-sequential-thinking key:

{
  "pi-sequential-thinking": {
    "storageDir": null,
    "maxBytes": 51200,
    "maxLines": 2000
  }
}

A standalone config file referenced by --seq-think-config-file or SEQ_THINK_CONFIG_FILE uses the same values at the top level:

{
  "storageDir": "~/.my-thinking-sessions",
  "maxBytes": 51200,
  "maxLines": 2000
}

Best practice: use settings.json for non-secret defaults only. If you want a separate private override file, use --seq-think-config-file or SEQ_THINK_CONFIG_FILE to point to a custom JSON config file. Legacy aliases --seq-think-config and SEQ_THINK_CONFIG are still accepted but deprecated.

Pi CLI Flags

pi --seq-think-storage-dir=/tmp/thoughts --seq-think-max-bytes=102400

These flags apply to the pi extension runtime only. For MCP clients, configure the server through env, SEQ_THINK_CONFIG_FILE, or the settings files above.

Effective Configuration Precedence

For the pi extension, per-field precedence is:

  1. CLI flags
  2. Environment variables
  3. Project settings (.pi/settings.json)
  4. Global settings (~/.pi/agent/settings.json)
  5. Built-in defaults

For the MCP stdio server, CLI flags are not read, so precedence starts with environment variables.

Custom config file discovery uses:

  1. --seq-think-config-file (pi only)
  2. deprecated --seq-think-config (pi only)
  3. SEQ_THINK_CONFIG_FILE
  4. deprecated SEQ_THINK_CONFIG
  5. settings files listed above

Tools

process_thought

Record and analyze a sequential thought with metadata.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | thought | string | yes | The content of your thought | | thought_number / thoughtNumber | integer | yes | Position in sequence, starting at 1 | | total_thoughts / totalThoughts | integer | yes | Estimated total thoughts; normalized upward for dynamic depth | | next_thought_needed / nextThoughtNeeded | boolean | yes | Whether more thoughts follow | | stage | string | yes | One of: Problem Definition, Research, Analysis, Synthesis, Conclusion | | session_id / sessionId | string | no | Named session to write; omit for the default session | | tags | string[] | no | Keywords or categories | | axioms_used / axiomsUsed | string[] | no | Principles applied | | assumptions_challenged / assumptionsChallenged | string[] | no | Assumptions questioned |

Successful mutation responses include a content-free receipt with the session label, pre/post counts, save time, and a state fingerprint.

Example named-session call:

{
  "thought": "Compare storage options before choosing one.",
  "thoughtNumber": 1,
  "totalThoughts": 3,
  "nextThoughtNeeded": true,
  "stage": "Analysis",
  "session_id": "architecture-review"
}

get_thinking_history

Read recorded thoughts for one session with bounded pagination. With the V1 JSON-per-session storage layout, history reads reject persisted session files over 10 MiB instead of parsing unbounded local state.

| Parameter | Type | Default | Description | |-----------|------|---------|-------------| | session_id / sessionId | string | default session | Session to read | | limit | integer | 20 | Maximum thoughts to return, capped at 100 | | offset | integer | 0 | Number of thoughts to skip from the start | | include_full_thoughts / includeFullThoughts | boolean | true | Set false to return metadata plus a short snippet instead of full thought text |

Example:

{
  "session_id": "architecture-review",
  "limit": 20,
  "include_full_thoughts": false
}

get_thinking_status

Return content-free diagnostics: session counts, storage writability, backup file names, effective config source labels, and current state fingerprints. Home-directory paths are redacted with ~ where possible. Status output may be partial after the named-session threshold, skips invalid session filenames, and reports corrupt session files without moving them to backups.

Example:

{}

generate_summary

Generate a summary for one session. Accepts optional session_id / sessionId.

clear_history

Clear one session. Accepts optional session_id / sessionId and returns a mutation receipt.

export_session

Export one session to a JSON file. file_path may be absolute or repo-relative; parent directories are created automatically. Export rejects directory targets and final-path symlinks. Existing files may be overwritten by this explicit tool call, and the receipt reports overwroteExistingFile.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | file_path | string | yes | Path to save the exported JSON file | | session_id / sessionId | string | no | Session to export; omit for the default session |

import_session

Import a JSON session file. file_path may be absolute or repo-relative. Parent directories are not created for import. Imports reject directories, final-path symlinks, malformed top-level records, and files over 10 MiB. Thought text is treated as inert untrusted content; missing IDs/timestamps are normalized when needed.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | file_path | string | yes | Path to the JSON file to import | | session_id / sessionId | string | no | Target session; explicit target wins over embedded session metadata |

sequential_think

Compatibility helper that generates a staged sequence for a topic and writes it to the selected session.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | topic | string | yes | Topic or question to think through | | num_thoughts | integer | no | Number of generated stages, 3–10; default 5 | | session_id / sessionId | string | no | Session to write |

Pi CLI Flags

| Flag | Env Variable | Default | Description | |------|-------------|---------|-------------| | --seq-think-storage-dir | MCP_STORAGE_DIR | ~/.mcp_sequential_thinking | Storage directory for sessions | | --seq-think-config-file | SEQ_THINK_CONFIG_FILE | — | Custom JSON config file path | | --seq-think-config | SEQ_THINK_CONFIG | — | Deprecated alias for the config file path | | --seq-think-max-bytes | SEQ_THINK_MAX_BYTES | 51200 | Max pi output bytes | | --seq-think-max-lines | SEQ_THINK_MAX_LINES | 2000 | Max pi output lines |

Thinking Stages

The Sequential Thinking framework organizes thoughts through five cognitive stages:

  1. Problem Definition — Define and scope the problem
  2. Research — Gather information and context
  3. Analysis — Examine and evaluate the evidence
  4. Synthesis — Combine insights into a coherent view
  5. Conclusion — Draw final conclusions and recommendations

Privacy and Storage Notes

  • V1 storage is local plaintext JSON.
  • process_thought, get_thinking_history, generate_summary, export_session, import_session, and sequential_think are content-bearing tools.
  • get_thinking_status and mutation receipts are designed to avoid thought text, tags, axioms, and assumptions.
  • V1 assumes one active pi process per storage directory. Add locking before using a shared directory with multiple writers.

Requirements

  • pi v0.51.0 or later

Uninstall

pi remove npm:@feniix/pi-sequential-thinking

License

MIT