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

ada-voice

v0.0.2

Published

<h2 align="center">

Readme

.

Overview

ADA: ADA is a voice coding assistant allowing you a better Developer experience while vibe coding with your agents.

ADA is named after Ada Lovelace, the first computer programmer, who wrote the first algorithm intended to be processed by a machine, paving the way for modern computing.

ADA is a fork of Groq Code CLI, an extensible command-line interface for interacting with the Groq platform.

Installation

For Development (Recommended)

git clone https://github.com/areai51/ada.git
cd ada
npm install
npm run build
npm link        # Enables the `ada` command in any directory
# Run this in the background during development to automatically apply any changes to the source code
npm run dev

To Try it Out

npx ada-voice@latest

Usage

# Start chat session
ada

Command Line Options

ada [options]

Options:
  -t, --temperature <temp>      Temperature for generation (default: 1)
  -s, --system <message>        Custom system message
  -d, --debug                   Enable debug logging to debug-agent.log in current directory
  -h, --help                    Display help
  -V, --version                 Display version number

Authentication

On first use, start a chat:

ada

And type the /login command:

Login

Get your API key from the Groq Console here

This creates a .ada/ folder in your home directory that stores your API key, default model selection, and any other config you wish to add.

You can also set your API key via environment variable:

export GROQ_API_KEY=your_api_key_here

Available Commands

  • /help - Show help and available commands
  • /login - Login with your credentials
  • /model - Select your Groq model
  • /clear - Clear chat history and context
  • /reasoning - Toggle display of reasoning content in messages

Voice Input

ADA supports voice input using Groq's speech-to-text API. To use voice input:

  1. Press Ctrl+V in the chat interface to activate voice input
  2. Speak your message when you see "Listening... speak now"
  3. Press SPACE or ENTER to stop recording and process your speech
  4. The transcribed text will be automatically sent as your message

For detailed setup instructions, see Voice Setup Guide.

Development

Testing Locally

# Run this in the background during development to automatically apply any changes to the source code
npm run dev

Available Scripts

npm run build      # Build TypeScript to dist/
npm run dev        # Build in watch mode

Project Structure

groq-code-cli/
├── src/
│   ├── commands/
│   │   ├── definitions/        # Individual command implementations
│   │   │   ├── clear.ts        # Clear chat history command
│   │   │   ├── help.ts         # Help command
│   │   │   ├── login.ts        # Authentication command
│   │   │   ├── model.ts        # Model selection command
│   │   │   └── reasoning.ts    # Reasoning toggle command
│   │   ├── base.ts             # Base command interface
│   │   └── index.ts            # Command exports
│   ├── core/
│   │   ├── agent.ts            # AI agent implementation
│   │   └── cli.ts              # CLI entry point and setup
│   ├── tools/
│   │   ├── tool-schemas.ts     # Tool schema definitions
│   │   ├── tools.ts            # Tool implementations
│   │   └── validators.ts       # Input validation utilities
│   ├── ui/
│   │   ├── App.tsx             # Main application component
│   │   ├── components/
│   │   │   ├── core/           # Core chat TUI components
│   │   │   ├── display/        # Auxiliary components for TUI display
│   │   │   └── input-overlays/ # Input overlays and modals that occupy the MessageInput box
│   │   └── hooks/
│   └── utils/
│       ├── constants.ts        # Application constants
│       ├── file-ops.ts         # File system operations
│       ├── local-settings.ts   # Local configuration management
│       └── markdown.ts         # Markdown processing utilities
├── docs/
├── package.json
├── tsconfig.json
└── LICENSE

TL;DR: Start with src/core/cli.ts (main entry point), src/core/agent.ts, and src/ui/hooks/useAgent.ts (bridge between TUI and the agent). Tools are in src/tools/, slash commands are in src/commands/definitions/, and customize the TUI in src/ui/components/.

Customization

Adding New Tools

Tools are AI-callable functions that extend the CLI's capabilities. To add a new tool:

  1. Define the tool schema in src/tools/tool-schemas.ts:
export const YOUR_TOOL_SCHEMA: ToolSchema = {
  type: 'function',
  function: {
    name: 'your_tool_name',
    description: 'What your tool does',
    parameters: {
      type: 'object',
      properties: {
        param1: { type: 'string', description: 'Parameter description' }
      },
      required: ['param1']
    }
  }
};
  1. Implement the tool function in src/tools/tools.ts:
export async function yourToolName(param1: string): Promise<ToolResult> {
  // Your implementation here
  return createToolResponse(true, result, 'Success message');
}
  1. Register the tool in the TOOL_REGISTRY object and executeTool switch statement in src/tools/tools.ts.

  2. Add the schema to ALL_TOOL_SCHEMAS array in src/tools/tool-schemas.ts.

Adding New Slash Commands

Slash commands provide direct user interactions. To add a new command:

  1. Create command definition in src/commands/definitions/your-command.ts:
import { CommandDefinition, CommandContext } from '../base.js';

export const yourCommand: CommandDefinition = {
  command: 'yourcommand',
  description: 'What your command does',
  handler: ({ addMessage }: CommandContext) => {
    // Your command logic here
    addMessage({
      role: 'system',
      content: 'Command response'
    });
  }
};
  1. Register the command in src/commands/index.ts by importing it and adding to the availableCommands array.

Changing Start Command

To change the start command from groq, change "groq" in "bin" of package.json to your global command of choice.

Re-run npm run build and npm link.

Contributing and Support

Improvements through PRs are welcome!

For issues and feature requests, please open an issue on GitHub.

Share what you create with Groq on our socials!

Featured Community Creations