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

crayon-cli

v0.2.0

Published

An AI-powered terminal coding assistant that can search your codebase, create plans, and automatically execute them.

Readme


⚡ Features

  • 🧠 Autonomous ReAct Loop: Crayon thinks, plans, and executes. If a test fails or a build breaks, it intercepts the error and fixes it autonomously.
  • 🛡️ Secure by Design: Fine-grained permission modes (Ask, Auto-Edit, Auto (God Mode)). Built-in safety guards against path traversal, oversized file reads, and destructive bash commands.
  • ✨ Beautiful CLI Interface: Built with React for the Terminal (ink). Features predictive autocomplete for slash commands, an interactive onboarding setup wizard, and dynamic native markdown rendering.
  • 🎨 Interactive Model Swapping: Hot-swap between Anthropic, OpenAI, Google, and OpenRouter directly in chat via an inline dropdown menu—without ever leaving your terminal flow.
  • 🚀 Advanced Local Indexer: Rapid semantic codebase search and dependency graph resolution via a blazing-fast local SQLite and Tree-sitter backbone.
  • 💾 Auto-Context Compaction: Keep token burn low with intelligent conversation history compaction (/compact) and real-time session cost tracking (/cost).
  • 🧩 Extensible Architecture: Integrates universally via Model Context Protocol (MCP) servers and exposes a highly modular TypeScript SDK.

📦 Quick Start

1. Installation

Install Crayon globally to use it across all your projects:

# Using npm
npm install -g crayon-cli@latest

# Using pnpm
pnpm add -g crayon-cli@latest

(Alternatively, try it instantly without installing: npx crayon-cli@latest chat)

2. Launch the Agent

Navigate to any local codebase and start a session:

cd your-project
crayon chat

First Boot Experience: Crayon will launch a beautiful interactive setup wizard to securely configure your API key, preferred models, and permission boundaries. All secrets are stored safely in ~/.crayon/config.json.


🛠️ CLI Commands & Usage

| Command | Description | |---------|-------------| | crayon init | Initialize the local .crayon/ config and force-index the repository | | crayon index | Force a fresh semantic re-index of the current workspace | | crayon chat | Launch a continuous, interactive agent session | | crayon run "<task>" | Execute a one-shot autonomous background task |

In-Chat Slash Commands

Once inside the interactive chat interface, use the / prefix to access predictive commands (navigate with arrow keys & <Tab> to autocomplete):

  • /mode - Hot-swap permission levels (ask, auto-edit, plan, auto, bypass)
  • /model - Hot-swap AI models via an inline interactive dropdown or direct argument
  • /config - Interactive setup wizard to change providers, models, or theme settings
  • /cost - View real-time token burn and session cost
  • /files - View files modified during the current session
  • /clear - Purge the conversation history buffer
  • /compact - Compress the context window to save tokens

🏗️ Architecture

Crayon is designed as a highly scalable, modular monorepo managed via pnpm:

packages/
├── 🤖 agent/    # Core LLM ReAct loop, planner, memory arrays, and native tool definitions
├── 🔍 indexer/  # AST extraction (Tree-sitter), dependency graphs, and SQLite semantic search
├── 💻 cli/      # The beautiful Ink-based Terminal UI, session state, and onboarding wizard
└── 🔌 vscode/   # First-class VS Code IDE Extension integrating the core agent engine

🗺️ Roadmap

  • [x] Core ReAct Agent Loop
  • [x] Local AST Codebase Indexer
  • [x] Multi-provider Model Support
  • [x] Advanced CLI UI (Ink)
  • [x] VS Code Extension (Alpha)
  • [ ] Model Context Protocol (MCP) Integration Layer
  • [ ] Browser Automation Tools (Playwright/Puppeteer)
  • [ ] Multi-agent Swarm Architecture

🤝 Contributing

We welcome contributions to make Crayon the absolute best open-source AI agent!

  1. Fork the repository
  2. Clone it locally (git clone https://github.com/mithun0524/crayon.git)
  3. Install Dependencies (pnpm install)
  4. Create a branch (git checkout -b feature/amazing-feature)
  5. Commit your changes (git commit -m 'feat: add amazing feature')
  6. Push and open a PR

Note: Please ensure you run pnpm run build and pnpm run typecheck before submitting pull requests.

🔐 Configuration & Security

Configurations are strictly stored in ~/.crayon/config.json preventing accidental commits of API keys. You can dynamically override keys via standard environment variables: ANTHROPIC_API_KEY, OPENAI_API_KEY, GEMINI_API_KEY, OPENROUTER_API_KEY.