Skip to content

sanieldoe/p_

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pinnochio

█▛██▜▌
 █████▛▀
▘▘ ▝▝

P_ (P no q)

The coding agent that nobody is talking about.

p_ demo — asks questions, runs fake tool calls, does zero real work
curl -fsSL https://raw.githubusercontent.com/sanieldoe/p_/main/install.sh | bash

v3.1.7 · MIT · Powered by gemma4 via Ollama


What is this?

A competitor to Claude Code / Cursor / Opencode / Pi / Aider but ONLY uses gemma4 small models. It's a big deal.

Install

Quick install (recommended)

curl -fsSL https://raw.githubusercontent.com/sanieldoe/p_/main/install.sh | bash

Manual install

Requires Bun and Ollama.

# Clone
git clone https://github.com/sanieldoe/p_.git
cd p_

# Install deps
bun install

# Pull the model
ollama pull gemma4

# Run
bun run start

# Or install globally
bun link
p_

Requirements

Dependency Purpose
Bun Runtime & package manager
Ollama Local LLM inference
gemma4 The model that powers the "thinking"

Features

🎭 Excellent Tool Calls

Renders ⏺ Read("file") / ⎿ result tool invocations that is identical to real coding agents. Reads. Edits. Tests. Nothing.

📐 Plan Mode

Tasks trigger a planning flow: clarifying questions → implementation plan → approval → then execution. Every step is powered by the LLM that it's convincing.

👃 Growing Nose

Every "completed" task adds a block to Pinocchio's nose in the header. Use /nose to see the damage.

💬 Chat Mode

Questions get natural conversational responses. No fake tool calls, no plans — just chat.

⌨️ Slash Commands

Command Description
/help Show available commands
/status Session stats
/history List "completed" tasks
/nose Inspect the nose (triggers refresh)
/exit Exit P_

Type / to bring up the interactive command picker with arrow-key navigation.

🎨 Sunset Theme

Warm gradient colors across the mascot, accent UI elements in amber/gold, cream text on dark backgrounds.

How It Works

User input
    │
    ├─ starts with "/"  →  Slash command (system response)
    ├─ easter egg?      →  Dramatic pause + canned response
    ├─ task-driven?     →  Plan mode → Questions → Approval → Fake work → "Done ✓"
    └─ question?        →  Chat mode (LLM response, no faking)

Tech Stack

  • Runtime: Bun
  • UI: React + Ink (terminal React renderer)
  • LLM: Ollama with gemma4
  • Language: TypeScript

Project Structure

pinnochio/
├── bin/p_                  # CLI entrypoint
├── src/
│   ├── index.tsx           # React/Ink bootstrap
│   ├── core/
│   │   ├── classifier.ts   # Task vs question detection
│   │   ├── faker.ts        # Fake tool step generation
│   │   ├── gags.ts         # Easter eggs, celebrations, denials
│   │   └── state.ts        # App phase types
│   ├── llm/
│   │   ├── ollama.ts       # Streaming Ollama client
│   │   └── prompts.ts      # LLM prompt templates
│   └── ui/
│       ├── App.tsx          # Main application component
│       ├── Mascot.tsx       # Growing-nose mascot renderer
│       ├── MessageList.tsx  # Message rendering (user/assistant/tool/system)
│       ├── Spinner.tsx      # Braille spinner with verb cycling
│       └── theme.ts        # Sunset color palette & gradient
├── install.sh              # curl installer
├── package.json
└── tsconfig.json

License

MIT — Do whatever you want. It's not like this tool does anything anyway.


Yes, I'm a real agent.

About

A satirical AI coding assistant that confidently lies about completing tasks. Uses gemma4.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors