# pi-ideas

A tiny idea notebook for [pi](https://pi.dev). Save random project ideas, add tags/notes, and pull one into pi when you want to build it.

## Install

```bash
pi install npm:@arshan-dev/pi-ideas
```

## Quick example

Save the idea before it disappears:

```txt
/idea GTA 6 delay coping simulator where every loading screen says "coming soon" #games #satire
```

Add context later:

```txt
/idea:note 1 MVP: countdown timer that resets whenever hope gets too high
/idea:note 1 Add fake patch notes like "improved trailer speculation physics"
```

Browse without touching the editor:

```txt
/ideas
/ideas #games
/ideas next
/ideas prev
```

When it is time to actually build:

```txt
/idea:vibe 1
```

## Commands

### CRUD

#### `/idea <text> [#tag]`

Create a new idea. Tags are optional and can be used later for filtering.

```txt
/idea GTA 6 delay coping simulator #games #satire
```

#### `/ideas [filter|#tag|next|prev|page]`

Read your ideas in the widget above the editor. Use text/tag filters, or page without typing separate long commands.

```txt
/ideas
/ideas #games
/ideas gta
/ideas next
/ideas prev
/ideas 2
```

#### `/idea:edit <id> [extra text]`

Update an idea in an edit box. Extra text is appended in the edit box instead of replacing the idea instantly.

```txt
/idea:edit 1
/idea:edit 1 with fake trailers and countdown resets
```

#### `/idea:dump <id|all>`

Dump one idea, or dump everything after confirmation.

```txt
/idea:dump 1
/idea:dump all
```

### Notes

#### `/idea:note <id> <note>`

Add a note to an idea. Notes show in the widget and are included when you run `/idea:work` or `/idea:vibe`.

```txt
/idea:note 1 Nice later: mini-game where you dodge leaks and YouTube thumbnails
```

### Pagination and display

#### `/ideas:next` and `/ideas:prev`

Same as `/ideas next` and `/ideas prev`. Kept as aliases if you like explicit commands.

```txt
/ideas:next
/ideas:prev
```

#### `/ideas:hide`

Hide the ideas widget when it gets in the way. Running `/ideas` or changing an idea brings it back.

```txt
/ideas:hide
```

#### `/idea:mode <simple|cozy|madmax>`

Switch the widget display. `cozy` is clean, `simple` is tight, `madmax` is for ideas that demand chrome and poor decisions.

```txt
/idea:mode cozy
/idea:mode simple
/idea:mode madmax
```

### Build prompts

#### `/idea:work <id>`

Put one idea into the editor as a practical build prompt. This is intentional editor input.

```txt
/idea:work 1
```

#### `/idea:vibe <id>`

Same as `/idea:work`, but lets vibe 🎧.

```txt
/idea:vibe 1
```

## Notes on the widget

`/ideas` does not send anything to the AI. It only shows a widget above the editor.

pi widgets are capped at 10 lines, so pi-ideas uses pages instead of dumping a huge list.

Cozy mode is designed to fit 2 ideas inside pi's 10-line widget cap:

```txt
✦ Ideas 1/2 · #games
╭─ ✦ #1 GTA 6 delay coping simulator
│  🏷 #games #satire
│  ✎ MVP: countdown timer that resets whenever hope gets too high
╰──────────────────────────────────
```

Mad Max mode is the same idea, but less hydrated:

```txt
🔥 WASTELAND IDEAS 1/2 · #games
☠ #1 WITNESS: GTA 6 DELAY COPING SIMULATOR
  ⛽ #games #satire
  🔧 MVP: countdown timer that resets whenever hope gets too high
  ride: /idea:vibe 1   scrap: /idea:dump 1
```

It uses symbols instead of real terminal colors, so it stays readable across terminals and themes.

## Storage

Ideas are stored locally as JSON:

```txt
~/.pi/agent/ideas/ideas.json
```

## Update

```bash
pi update npm:@arshan-dev/pi-ideas
```

## Uninstall

```bash
pi remove npm:@arshan-dev/pi-ideas
```

Removing the package does not delete your saved ideas.

## Links

- pi: https://pi.dev
- author: https://arshan1019.github.io
