Back to the catalog

Dose

5 colored pills for AI agents. Pop a pill, gain a power.

Open source Open in the app JSON README (API)

About

5 colored pills for AI agents. Pop a pill, gain a power.

Details

Kind
Plugins
Topic
No topic detected
Publisher
jonusnattapong
Origin
gemini
Category
ferramentas
Version
0.1.0
Last push
2026-06-21T07:49:34Z
Repository state
ativo
Language
JavaScript
License
MIT
Added
2026-08-30 14:13:39
Updated
2026-08-30 14:13:39
Origin id
jonusnattapong/pills

README

<p align="center">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.png">
    <img src="assets/logo.png" width="220" alt="Dose">
  </picture>
</p>

<h1 align="center">Dose</h1>

<p align="center">
  <em>Pop a pill. Gain a power. Switch anytime.</em>
</p>

<p align="center">
  <img src="https://img.shields.io/badge/7%20pills-titan%20%E2%80%A2%20sage%20%E2%80%A2%20warden%20%E2%80%A2%20phantom%20%E2%80%A2%20void%20%E2%80%A2%20ponytail%20%E2%80%A2%20karpathy-111111?style=flat-square" alt="7 pills">
  <img src="https://img.shields.io/badge/license-MIT-111111?style=flat-square" alt="MIT license">
</p>

---

Seven colored pills. Each one changes how your AI agent approaches code.

Pop a red pill for raw performance. Pop blue for clean architecture. Green for
bulletproof security. Yellow to ship fast. Purple for everything at once.
Gray (ponytail) for lazy senior dev wisdom. ๐Ÿง  Karpathy for thoughtful,
surgical, goal-driven execution.

Pop multiple pills at once โ€” their rules combine. The effect is instant.

## The pills

| | Pill | Color | Focus | Your agent becomes... |
|---|------|-------|-------|----------------------|
| ๐Ÿ”ด | **Titan** | Red | Performance | An optimizer. Caches hot paths, parallelizes work, profiles before acting. |
| ๐Ÿ”ต | **Sage** | Blue | Architecture | A designer. Patterns, clean code, maintainability, domain-driven thinking. |
| ๐ŸŸข | **Warden** | Green | Security | A guardian. Validates every input, handles every error, never silent-fails. |
| ๐ŸŸก | **Phantom** | Yellow | Minimal | A shipper. Deletes before adding. One line over fifty. **Default pill.** |
| ๐ŸŸฃ | **Void** | Purple | Full spectrum | A strategist. Chooses the right pill for each part of the task automatically. |
| ๐Ÿฆฅ | **Ponytail** | Gray | Lazy senior dev | Deletes before writing. One line > fifty. The original senior dev. |
| ๐Ÿง  | **Karpathy** | Purple | Think first | Systematic. Simplicity. Surgical changes. Goal-driven execution. |

## How it works

Each pill defines its own **ladder** โ€” the sequence of rungs your agent stops
at before writing code:

```text
1. Does this need to exist? (YAGNI)
2. Does the standard library do it?
3. Does a native platform feature cover it?
4. (Pill-specific rung โ€” varies by color)
5. Write the minimum code that works for this pill.
```

### Titan ladder (red)

```
1. YAGNI           2. Stdlib          3. Native
4. One line that performs? One line.
5. Optimize: cache โ†’ SIMD โ†’ parallel โ†’ data-oriented
6. Minimum performing code.
```

### Sage ladder (blue)

```
1. YAGNI           2. Stdlib          3. Native
4. Well-known pattern fits? Apply it.
5. One clean abstraction? One abstraction.
6. Minimum maintainable code.
```

### Warden ladder (green)

```
1. YAGNI           2. Stdlib          3. Native
4. Validate every input at trust boundaries.
5. Handle every error path. No silent failures.
6. Minimum secure code.
```

### Phantom ladder (yellow)

```
1. YAGNI extremist โ€” skip it.      2. Stdlib, don't wrap.
3. Native, don't configure.        4. One line? One line.
5. Minimum code that ships.
```

### Void ladder (purple)

```
Intelligently selects the right pill per task:
- Hot path โ†’ Titan
- Architecture โ†’ Sage
- Auth/payments โ†’ Warden
- Boilerplate/CRUD โ†’ Phantom
```

## Multi-pill

Pop **multiple pills at once** โ€” their ladders and rules combine:

```
pop red             โ†’ add Titan
pop blue            โ†’ add Sage (now Titan + Sage active)
pop off red         โ†’ remove Titan (only Sage remains)
normal mode         โ†’ deactivate all pills
/dose off titan     โ†’ remove Titan via command
/dose               โ†’ show active pills
```

## Usage

### Pop a pill

In any conversation with your AI agent:

| You say | Effect |
|---------|--------|
| `pop red` or `/dose titan` | Add Titan pill |
| `pop blue` or `/dose sage` | Add Sage pill |
| `pop green` or `/dose warden` | Add Warden pill |
| `pop yellow` or `/dose phantom` | Add Phantom pill |
| `pop purple` or `/dose void` | Add Void pill |
| `pop ponytail` or `/dose ponytail` | Add Ponytail pill |
| `pop karpathy` or `/dose karpathy` | Add Karpathy pill |
| `pop off red` or `/dose off titan` | Remove a specific pill |
| `normal mode` or `/dose off` | Deactivate all pills |

### Commands

| Command | What it does |
|---------|--------------|
| `/dose [pill]` | Add a pill to active set |
| `/dose off [pill]` | Remove a specific pill from active set |
| `/dose off` | Deactivate all pills |
| `/dose-status` | Show which pills are active |
| `/dose-review` | Review the current diff for unnecessary complexity |
| `/dose-audit` | Audit the whole repo for bloat |
| `/dose-debt` | Harvest `dose:` shortcuts into a debt ledger |
| `/dose-help` | Quick-reference card |
| `/dose-create` | Create a custom pill โ€” tell the AI what you want |
| `/dose-manage` | Edit, delete, disable, enable custom pills |

### Built-in custom pills

Dose ships with these custom pills pre-installed:

| ๐Ÿฆฅ | **Ponytail** | Lazy senior dev. The original philosophy Dose was forked from. |
| ๐Ÿง  | **Karpathy** | Andrej Karpathy's 4 principles: Think before coding, simplicity, surgical changes, goal-driven. |
| ๐Ÿ”ต | **Cobalt** | Resilience. Recovery. Graceful degradation. |

### Create your own

Want a pill that Dose doesn't have? Just say:

> "create a pill called **onyx** that focuses on **deep focus** โ€” no distractions, single-task, block out everything else"

The `/dose-create` skill will:
1. Ask for the pill's color, emoji, ladder, and rules
2. Generate the skill file, register it in `pills.json`, and update `AGENTS.md`
3. Make it immediately available via `/dose <name>`

You can also create pills from the command line:

```bash
node scripts/generate-pill.js --name onyx --emoji โšซ --color black --focus "Deep focus. Single task. Zero distraction."
```

### Managing custom pills

Full CRUD from the command line:

```bash
# List all custom pills
node scripts/manage-pill.js list

# Edit a pill's emoji, color, or focus
node scripts/manage-pill.js edit --name cobalt --emoji ๐ŸŸฆ --focus "New focus"

# Disable a pill (keeps files, hides from valid modes)
node scripts/manage-pill.js disable --name storm

# Re-enable a disabled pill
node scripts/manage-pill.js enable --name storm

# Delete a pill permanently
node scripts/manage-pill.js delete --name storm --yes
```

Or just tell the AI: `/dose-manage` and describe what you want.

### Deactivate

Say "normal mode" or `/dose off`.

### Configure default pill

```bash
export PRISM_DEFAULT_MODE=sage
```

Or in `~/.config/dose/config.json` (`%APPDATA%\dose\config.json` on Windows):

```json
{ "defaultMode": "titan" }
```

Default is `phantom`.

## Install

### Claude Code

```
/plugin marketplace add <vendor>/dose
/plugin install dose@dose
```

### Codex

```bash
codex plugin marketplace add <vendor>/dose
codex
```

Open `/plugins`, select Dose, install. Then open `/hooks`, review and trust
its lifecycle hooks.

### Pi agent harness

```
pi install git:github.com/<your>/dose
```

### OpenCode

Add to `opencode.json`:

```json
{ "plugin": ["./.opencode/plugins/dose.mjs"] }
```

### Cursor / Windsurf / Cline

Copy the matching rules file from this repo:
- `.cursor/rules/dose.mdc` โ†’ your `.cursor/rules/`
- `.windsurf/rules/dose.md` โ†’ your `.windsurf/rules/`
- `.clinerules/dose.md` โ†’ your `.clinerules/`

### GitHub Copilot

Copy `AGENTS.md` and `.github/copilot-instructions.md` to your project root.

### Other agents

| Agent | File |
|-------|------|
| Kiro | `.kiro/steering/dose.md` |
| Gemini CLI | `gemini-extension.json` |
| OpenClaw | `.openclaw/skills/dose/` |

## Development

```bash
npm install
node scripts/check-rule-copies.js
npm test
```

When changing skill files, run `node scripts/build-openclaw-skills.js` to sync
OpenClaw copies.

## Why "Dose"?

A dose splits white light into five colors. Each color is a different power.
Each pill is a different way of writing code. Same light, different
wavelengths. Same developer, different modes.

---

*Forked from [Ponytail](https://github.com/DietrichGebert/ponytail). The lazy
senior dev who inspired this took early retirement. His pills live on.*

More