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

omo-olympus

v0.2.13

Published

Greek mythology personas for opencode agents — watch Sisyphus, Oracle, and friends narrate your AI workflow in the sidebar

Readme

🏛️ omo-olympus

Your agents have names. Now they have faces.

npm License

English | 한국어

▼ Olympus
 🪨 Sisyphus    Pushing uphill...
 🔍 Explorer    Following a lead...
 📚 Librarian   Cross-referencing...
 🧙 Oracle      💤
 🦉 Metis       💤
 🎭 Momus       💤
 🔥 Prometheus  💤

omo-olympus in action


You run oh-my-opencode. Agents fire in parallel. Background tasks fly. Sessions spawn and die.

But you never see any of it.

omo-olympus changes that. Seven agents. Seven Greek mythology personas. Real-time dialogue in your sidebar. Explorer digs through your codebase — "I smell a clue". Oracle peers beyond the mists — "The vision forms...". Momus tears your plan apart — "Don't shoot the messenger".

Inactive agents sleep: 💤. Active agents talk. You watch the gods work.

Why "Olympus"?

You stare at a terminal all day. Agents run in the background. You have no idea what's happening until the final output drops.

That's boring.

So each agent got a name from Greek mythology, a personality that matches its role, and dialogue that changes every run. Once you see Sisyphus pushing his boulder while Oracle peers into the mists — a silent sidebar won't cut it anymore.

The Pantheon

Not status labels. Characters.

| | Agent | Role | They say things like... | |:---:|---|---|---| | 🪨 | Sisyphus | The one who never stops | "One more push" · "The boulder rolls again" · "Summit reached ✓" | | 🔍 | Explorer | Codebase detective | "On the trail!" · "Checking every corner" · "Case closed" | | 📚 | Librarian | The one who remembers everything | "To the stacks!" · "Page 394..." · "The records confirm" | | 🧙 | Oracle | Sees what others can't | "You seek guidance?" · "Patience, mortal..." · "The path is clear" | | 🦉 | Metis | Thinks before anyone acts | "Hmm, interesting..." · "Weighing options..." · "Scope defined" | | 🎭 | Momus | Brutally honest critic | "Alright, roast time" · "Not convinced yet..." · "The truth hurts" | | 🔥 | Prometheus | Forges the plan | "Fire in the forge" · "Connecting the dots..." · "Blueprint ready" |

4 states per agent — start, working, done, error — with randomized lines each. Every run feels different.

Install

opencode plugin omo-olympus

That's it. OpenCode detects both the server and TUI entrypoints from the package and updates opencode.json and tui.json automatically. Restart opencode to activate.

For Humans

Paste this into your LLM agent (Claude Code, opencode, Cursor, etc.):

Install and configure omo-olympus by following the instructions here:
https://raw.githubusercontent.com/akasai/omo-olympus/refs/heads/main/docs/installation.md

Seriously, let the agent handle it. It merges configs better than you.

For LLM Agents

Fetch the installation guide and follow it:

https://raw.githubusercontent.com/akasai/omo-olympus/refs/heads/main/docs/installation.md

Manual Setup

If you prefer to configure manually, add the plugin to both config files:

~/.config/opencode/opencode.json

{
  "plugin": ["omo-olympus"]
}

~/.config/opencode/tui.json

{
  "$schema": "https://opencode.ai/tui.json",
  "plugin": [["omo-olympus", { "enabled": true }]]
}

Restart opencode after updating the config files.

How It Works

Two plugins. One shared queue. Zero config.

task() → server detects agent type → pending queue → TUI picks up on session event → sidebar talks
main session → server reads system prompt → mode file → TUI switches persona on status event

Server plugin hooks into four interception points:

  • tool.execute.before — intercepts task() calls and infers the agent from subagent_type or category
  • tool.execute.after — records task completion signals
  • command.execute.before — detects mode-switching commands (/start-work, /omc-plan)
  • experimental.chat.system.transform — detects main session mode (Prometheus vs Sisyphus) by reading system prompt content

TUI plugin renders in sidebar_content (top of sidebar, order 50), maps child sessions to personas via file-based IPC, and drives real-time updates with reactive signals.

No websockets. No shared memory. A JSON file in /tmp and two plugins that talk through it.

Features

| | What | Why it matters | |:---:|---|---| | 📂 | Collapsible | Click the header to fold. Collapsed shows active agent count | | 🎨 | Theme-aware | Reads your opencode theme. RGBA buffer → hex, automatically | | ⚡ | Real-time | Solid.js reactive signals. Updates as agents work | | 🔇 | Auto-sleep | 3 seconds after done, agents return to 💤 | | 🔄 | Concurrent tracking | Multiple instances of the same agent tracked; sleeps only when all finish | | ❌ | Error detection | Agents show error dialogue on failure (5-second display) | | 🔥 | Mode switching | Detects Prometheus (plan) vs Sisyphus (build) via system prompt | | 🧹 | Session cleanup | Prevents memory leaks with session.deleted handler |

Requirements

  • opencode with plugin support (@opencode-ai/plugin >= 1.4.3)
  • Agent orchestration that dispatches task() calls — e.g., oh-my-opencode

Manual Install

Skip npm. Copy the source files directly:

mkdir -p ~/.config/opencode/plugins
cp src/tui.tsx ~/.config/opencode/plugins/omo-olympus.tsx
cp src/server.ts ~/.config/opencode/plugins/omo-olympus-server.ts

Register local paths instead:

// opencode.json
{ "plugin": ["./plugins/omo-olympus-server.ts"] }

// tui.json
{ "plugin": [["./plugins/omo-olympus.tsx", { "enabled": true }]] }

Contributing

Issues and PRs welcome. If you have an idea for a new persona, a better line of dialogue, or a bug to report — open an issue.

To develop locally:

git clone https://github.com/akasai/omo-olympus.git
cp src/tui.tsx ~/.config/opencode/plugins/omo-olympus.tsx
cp src/server.ts ~/.config/opencode/plugins/omo-olympus-server.ts

Tip: use symlinks for live-reload during development:

ln -sf $(pwd)/src/server.ts ~/.config/opencode/plugins/omo-olympus-server.ts
ln -sf $(pwd)/src/tui.tsx ~/.config/opencode/plugins/omo-olympus.tsx

Edit, restart opencode, see your changes live.

Run tests:

npm test

Known Quirks

  • tool.execute.before fires twice per tool call — dedup via 200ms window
  • Main session mode detection uses experimental.chat.system.transform — API may change in future opencode versions
  • System prompt keyword matching ("You are Prometheus") is coupled to OMC's internal prompt format
  • Server ↔ TUI communication via /tmp/omo-pending.json and /tmp/omo-mode.json (file-based IPC)

License

MIT