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

eklavya-council

v1.0.3

Published

Eklavya Council — the debate your question deserves.

Readme

Eklavya Council

Eklavya learned from a clay idol of his guru when no real teacher would take him. This tool is your virtual council when no expert is available.

Eklavya Council — the debate your question deserves. You pose a question. A council of expert AI personas debate it in structured rounds. A synthesis engine produces decisions, dissent, open questions, and action items.

Not a chatbot. A thinking environment.

→ Try it live: eklavya-council.onrender.com

Disclaimer: Eklavya Council generates AI-simulated debate perspectives. All personas are AI-generated archetypes — not real people. Output is a thinking tool only — not professional, legal, medical, financial, or psychological advice. Never use this as a substitute for qualified professional help. In a crisis, call 988 (US) or your local emergency number.


What it does

You: "Should we migrate to microservices?"

EKLAVYA COUNCIL  ·  Software Architecture Council
══════════════════════════════════════════════════

── MODERATOR  ·  Opening ─────────────────────────
We're examining microservices migration across three dimensions:
team topology fit, operational complexity, and long-term scalability.

── DISTRIBUTED SYSTEMS EXPERT ────────────────────
The question is poorly formed. "Microservices" is a deployment
topology, not an architecture. What you're actually asking is whether
Conway's Law alignment justifies the operational overhead...

── THE SKEPTIC  ·  Senior Engineer ───────────────
I've seen three companies do this migration. Two of them spent 18 months
and ended up with a distributed monolith harder to debug than what
they started with...

── SYNTHESIS ──────────────────────────────────────
✓ DECISIONS
  1. Do not migrate — team cognitive load cannot support it at current size
  2. Address the real problem: module coupling inside the monolith first

⚡ DISSENT
  · Systems Expert: question needs reframing — this isn't an architecture question

→ ACTIONS
  1. Run Team Topologies assessment before any architecture discussion
  2. Measure current deployment frequency as baseline

Install

npm install -g eklavya-council

Or from source:

git clone https://github.com/sreenathmmenon/eklavya-council.git
cd eklavya-council
npm install && npm run build && npm link

Quick Start

# Configure API key (one-time)
eklavya init

# Or set environment variable directly
export ANTHROPIC_API_KEY=sk-ant-...

# Ask a question
eklavya ask "Should we use microservices?"

# Specify council
eklavya ask "Should I take this job offer?" --council career-decision

# More debate rounds
eklavya ask "What is wrong with our architecture?" --rounds 3

# Save to markdown
eklavya ask "Evaluate our startup idea" --council startup-idea --output session.md

# Use specific personas (override council)
eklavya ask "Tabs vs spaces" --personas "skeptic,pragmatist,devil-advocate"

Councils

| Council | Best for | |---|---| | software-architecture | Architecture, tech choices, system design | | product-strategy | Product direction, features, build vs buy | | career-decision | Career moves, pivots, learning investments | | startup-idea | Startup validation, business model review | | code-review | Architectural code review, patterns, security | | personal-decision | Life decisions, priorities, values | | deep-debate | 7 experts · 3 rounds · comprehensive analysis | | learning-path | What to learn next, skill priorities |


Personas

Domain Experts (Archetypes)

| ID | Role | |---|---| | distributed-systems-expert | Author & Researcher in Distributed Systems | | cloud-native-expert | Cloud Infrastructure & Kubernetes Practitioner | | data-engineer | Data Platform & Streaming Specialist | | large-scale-systems-engineer | Hyperscale Infrastructure Architect | | frontend-architect | Frontend Systems & Developer Experience Lead | | security-expert | Principal Security Engineer |

Debate Archetypes

| ID | Role | |---|---| | skeptic | Senior Engineer (10+ years battle scars) | | pragmatist | Staff Engineer / Ship It Person | | devil-advocate | Hired Contrarian | | cfo | Chief Financial Officer | | ceo | Chief Executive Officer | | visionary | CTO / Futurist |

Life & Career

| ID | Role | |---|---| | mentor | Experienced Advisor | | realist | Ground Truth Provider | | ambitious-challenger | High-Performance Coach | | stoic | Philosophical Advisor |

Custom personas: Create your own with eklavya persona add — stored locally in ~/.eklavya/personas/.


Multi-Provider Support

# Anthropic (default)
export ANTHROPIC_API_KEY=sk-ant-...

# OpenAI
export OPENAI_API_KEY=sk-...

# Google Gemini
export GOOGLE_API_KEY=...

# Override provider for a session
eklavya ask "..." --provider openai

Supported: anthropic (Claude), openai (GPT-4o), google (Gemini)


CLI Reference

eklavya init                     Configure API keys and defaults
eklavya ask [question]           Convene a council
  -c, --council <id>             Council to use
  -r, --rounds <n>               Debate rounds (1-3)
  -p, --personas <ids>           Comma-separated persona overrides
  --provider <name>              Override LLM provider
  --no-stream                    Disable streaming output
  -o, --output <file>            Export session to markdown

eklavya councils list            List all councils
eklavya council add              Create a custom council
eklavya council delete <id>      Delete a custom council

eklavya personas list            List all personas
eklavya persona add              Create a custom persona
eklavya personas show <id>       Show persona details

eklavya sessions list            List recent sessions
eklavya sessions show <id>       Display a past session
eklavya sessions export <id>     Export session to markdown

eklavya status                   Show configuration status

Web UI

A web UI is included in ui/ (Next.js 15 + Tailwind). Live streaming, per-persona colours, council verdict panel.

Live: eklavya-council.onrender.com

To run locally:

cd ui
npm install
echo "ANTHROPIC_API_KEY=sk-ant-..." > .env.local
npm run dev
# Open http://localhost:3000

Architecture

eklavya ask "question"
        │
        ▼
CouncilRunner (src/orchestrator.ts)
  Loads council + personas
  Runs rounds:
    Moderator opens → Each persona speaks → Moderator summarises
  Synthesis agent produces structured JSON
        │
        ▼
Provider Abstraction (src/providers.ts)
  Unified streaming interface
  Anthropic | OpenAI | Google Gemini
        │
        ▼
Storage (src/storage.ts)
  ~/.eklavya/sessions/<id>.json
  Replayable, exportable to markdown

Use Cases

  • Architecture decisions — multiple expert viewpoints in minutes
  • Career decisions — Mentor, Realist, and Ambitious Challenger weigh in
  • Startup validation — CEO + CFO + Skeptic before committing resources
  • Personal decisions — Stoic + Realist + Mentor at 2am
  • Code review — Security, Systems, and Pragmatist perspectives
  • Learning path — What to learn next from multiple angles

Roadmap

  • [x] CLI with streaming output
  • [x] Multi-provider support (Anthropic, OpenAI, Google)
  • [x] 8 built-in councils, 16 built-in personas
  • [x] Session history and markdown export
  • [x] Custom persona and council creation
  • [x] Web UI (Next.js + Tailwind) with live streaming
  • [ ] Persona memory across sessions
  • [ ] Ollama local model support (offline mode)
  • [ ] Shareable session links

Safety & Limitations

  • All personas are AI-generated archetypes — not real people
  • Output is a thinking tool, not authoritative advice
  • Not a substitute for medical, legal, financial, or mental health professionals
  • Crisis resources: 988 Suicide & Crisis Lifeline (US) · Crisis Text Line: text HOME to 741741

Contributing

Contributions welcome — especially new personas and council templates. Open an issue or PR at github.com/sreenathmmenon/eklavya-council.


"The debate your question deserves."

License: MIT · Author: Sreenath