@feniix/pi-code-reasoning
Code Reasoning extension for pi — reflective problem-solving through sequential thinking with branching and revision support
Package details
Install @feniix/pi-code-reasoning from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@feniix/pi-code-reasoning- Package
@feniix/pi-code-reasoning- Version
2.1.1- Published
- Apr 22, 2026
- Downloads
- 1,143/mo · 181/wk
- Author
- feniix
- License
- MIT
- Types
- extension
- Size
- 35.5 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./extensions/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@feniix/pi-code-reasoning
Code Reasoning extension for pi — reflective problem-solving through sequential thinking with branching and revision support.
Based on the MCP server by Matt Westgate, this native TypeScript extension provides structured thinking tools without external dependencies.
Features
- Sequential Thinking — Break down complex problems into structured, revisable steps
- Branching — Explore alternative approaches from any thought (🌿)
- Revision — Correct earlier thinking when new insights emerge (🔄)
- Progress Tracking — Track thought count and branches
- Configurable Output — Client-side byte and line truncation
Install
pi install npm:@feniix/pi-code-reasoning
Ephemeral (one-off) use:
pi -e npm:@feniix/pi-code-reasoning
Tools
code_reasoning
Record and process a thought with metadata.
| Parameter | Type | Required | Description |
|---|---|---|---|
thought |
string | yes | Your reasoning content |
thought_number |
integer | yes | Position in sequence |
total_thoughts |
integer | yes | Estimated total thoughts |
next_thought_needed |
boolean | yes | Set FALSE when done |
is_revision |
boolean | no | When correcting earlier thought (🔄) |
revises_thought |
integer | no | Which thought# you're revising |
branch_from_thought |
integer | no | When exploring alternatives (🌿) |
branch_id |
string | no | Identifier for the branch |
needs_more_thoughts |
boolean | no | If more thoughts needed |
code_reasoning_status
Get current session status: branches and thought count.
code_reasoning_reset
Reset the session, clearing all thoughts and branches.
Thinking Patterns
Sequential Thinking (Basic)
{
"thought": "Initial exploration of the problem...",
"thought_number": 1,
"total_thoughts": 5,
"next_thought_needed": true
}
Branching (Explore Alternatives) 🌿
{
"thought": "Exploring alternative approach...",
"thought_number": 3,
"total_thoughts": 7,
"next_thought_needed": true,
"branch_from_thought": 2,
"branch_id": "alternative-algo-x"
}
Revision (Correct Earlier Thinking) 🔄
{
"thought": "Revisiting earlier point: Assumption Y was flawed...",
"thought_number": 4,
"total_thoughts": 6,
"next_thought_needed": true,
"is_revision": true,
"revises_thought": 2
}
Checklist (Review Every 3 Thoughts)
- Need to explore alternatives? → Use BRANCH (🌿)
- Need to correct earlier thinking? → Use REVISION (🔄)
- Scope changed? → Adjust total_thoughts
- Done? → Set next_thought_needed = false
Configuration
CLI Flags
pi --code-reasoning-max-bytes=102400 --code-reasoning-max-lines=5000
Environment Variables
export CODE_REASONING_MAX_BYTES=102400
export CODE_REASONING_MAX_LINES=5000
Settings File
Use pi's standard settings locations for non-secret configuration:
- project:
.pi/settings.json - global:
~/.pi/agent/settings.json
Under the pi-code-reasoning key:
{
"pi-code-reasoning": {
"maxBytes": 51200,
"maxLines": 2000
}
}
Best practice: use
settings.jsonfor non-secret defaults only. If you need a separate private override file, use--code-reasoning-config-fileorCODE_REASONING_CONFIG_FILEto point to a custom JSON config file. Legacy aliases--code-reasoning-configandCODE_REASONING_CONFIGare still accepted but deprecated.
CLI Flags
| Flag | Env Variable | Default | Description |
|---|---|---|---|
--code-reasoning-config-file |
CODE_REASONING_CONFIG_FILE |
— | Custom JSON config file path (overrides settings.json lookup) |
--code-reasoning-config |
CODE_REASONING_CONFIG |
— | Deprecated alias for the config file path |
--code-reasoning-max-bytes |
CODE_REASONING_MAX_BYTES |
51200 |
Max output bytes |
--code-reasoning-max-lines |
CODE_REASONING_MAX_LINES |
2000 |
Max output lines |
Requirements
- pi v0.51.0 or later
License
MIT