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

gibi-bot

v1.1.1

Published

Gibi is a Slack bot built with TypeScript and the Slack Bolt framework.

Readme

Gibi

Gibi is a Slack bot built with TypeScript and the Slack Bolt framework.

Setup & Configuration

Prerequisites

  • Node.js (v18+ recommended)
  • A Slack Workspace
  • Agent CLIs (Optional but recommended):
    • gemini (Google Gemini) - Default
    • claude (Anthropic Claude)
    • cursor (Cursor AI) Ensure these CLIs are installed and available in your system's PATH.

1. Create Slack App & Obtain Tokens (2026 Guide)

The easiest way to configure the bot is using a Slack App Manifest.

  1. Navigate to Slack Apps.
  2. Click Create New App.
  3. Select From an app manifest.
  4. Select your target workspace.
  5. Paste the following YAML manifest:
display_information:
  name: Gibi
  description: A helpful Slack bot
  background_color: '#2c2d30'
features:
  bot_user:
    display_name: Gibi
    always_online: true
oauth_config:
  scopes:
    bot:
      - chat:write
      - channels:history
      - groups:history
      - im:history
      - app_mentions:read
      - commands
  slash_commands:
    - command: /cd
      description: Change working directory
      usage_hint: '[path]'
      should_escape: false
    - command: /plan
      description: Enter Plan Mode to generate implementation plans
      usage_hint: '[goal]'
      should_escape: false
    - command: /model
      description: Switch the AI model for the current context
      usage_hint: '[model_name]'
      should_escape: false
    - command: /help
      description: Show available commands
      usage_hint: ''
      should_escape: false
    - command: /agent
      description: Switch the backing agent
      usage_hint: '[agent_name]'
      should_escape: false
settings:
  event_subscriptions:
    request_url: http://localhost:3000/slack/events # Ignored for Socket Mode but required for schema
    bot_events:
      - message.channels
      - message.groups
      - message.im
      - app_mention
      - member_joined_channel
  socket_mode_enabled: true
  1. Click Next and then Create.
  2. Obtain Bot Token:
    • Go to OAuth & Permissions.
    • Click Install to Workspace.
    • Copy the xoxb-... token. This is your SLACK_BOT_TOKEN.
  3. Obtain Signing Secret:
    • Go to Basic Information > App Credentials.
    • Copy the Signing Secret. This is your SLACK_SIGNING_SECRET.
  4. Obtain App Token:
    • Go to Basic Information > App-Level Tokens.
    • Click Generate Token and Scopes.
    • Name it (e.g., socket-mode), add the connections:write scope, and generate.
    • Copy the xapp-... token. This is your SLACK_APP_TOKEN.

2. Run the Application

  1. Install dependencies:
    npm install
  2. Start the app:
    npm start
  3. On the first run, the app will prompt you to enter the tokens you obtained above. It will securely save them to your system keychain so you don't need to enter them again.

2a. Run as CLI (Global Install)

Alternatively, you can install Gibi globally and run it from any directory:

npm install -g .
gibi

Development

  • npm start: Runs the bot in development mode.
  • npm run dev: Runs the bot with auto-reload (using nodemon).
  • npm run build: Compiles TypeScript to JavaScript.
  • npm run lint: Check for linting errors.
  • npm run lint:fix: Auto-fix linting errors.
  • npm run format: Auto-format code with Prettier.
  • npm run format:check: Check if code is formatted.

Features

🏠 App Home Dashboard

Gibi now features a dedicated Home tab in Slack.

  • System Status: View available models and agents.
  • Recent Activity: See your most recent conversation contexts and their current state (Model, Agent, CWD) at a glance.

📂 Interactive Navigation

The /cd command and cd [path] messages now provide an interactive directory browser.

  • Buttons: Navigate into folders by clicking buttons instead of typing paths.
  • Quick Up: Use the "Up one level" button for fast traversal.

🛠️ Visual Configuration

Switching models and agents is now easier and less error-prone.

  • Modals: Use /model or /agent without arguments to open a popup window with selection dropdowns.

🤖 Rich Agent Responses

Conversation with Gibi is more structured and informative.

  • Context Footers: Every response shows which Agent and Model were used, along with the current working directory.
  • Feedback: Use the 👍/👎 buttons on responses to provide quick feedback.

Context Awareness & Threading

Gibi now uses a Thread-First approach to keep your channels clean and organized.

  • Start a Task: Mention the bot in a channel to start a new context (e.g., @Gibi let's debug this). Gibi will reply in a thread.
  • Chat in Thread: Once a thread is started, you can reply directly in that thread without mentioning @Gibi again. The bot will automatically listen and respond within that specific context.
  • Noise Reduction: Gibi ignores general channel messages. It only responds to:
    • Direct Mentions (@Gibi)
    • Direct Messages (DMs)
    • Messages within threads it is already participating in.
  • Isolation: Each thread is a completely isolated context with its own memory, working directory (CWD), and configuration.

Persistence

Contexts are saved to .context.json locally. If you restart the bot, it picks up right where it left off.

/cd Command

Change the bot's working directory contextually for the current channel.

  • Usage: /cd [path]
  • Examples:
    • /cd src: Move into the src folder.
    • /cd ..: Move up one level.
    • /cd: Show the current directory listing.
  • Note: The directory change is persisted per channel/thread. It does not affect the global process or other channels.

/plan Command

Enter "Plan Mode" where the bot acts as a technical architect to help you plan features.

  • Usage: /plan [goal]
  • Example: /plan Build a new login system
  • Behavior: The bot will generate a detailed markdown plan/checklist and ask clarifying questions.

/model Command

Switch the Gemini model used for the current conversation.

  • Usage: /model [model_name]
  • Example: /model gemini-1.5-pro
  • Note: Persisted per channel/thread.

/agent Command

Switch the backing AI agent used for the conversation.

  • Usage: /agent [agent_name]
  • Supported Agents: gemini, claude, cursor
  • Example: /agent claude
  • Note: Persisted per channel/thread. Requires the respective CLI to be installed.

/help Command

Show a list of all available commands and their usage.

  • Usage: /help

Troubleshooting

Events Not Firing?

If features like the invite greeting aren't working:

  1. Check Event Subscriptions: Ensure the relevant events (e.g., member_joined_channel) are added in the Slack App settings.
  2. Reinstall App: After changing permissions or events, you MUST reinstall the app to the workspace.
    • Go to Install App in the sidebar.
    • Click Reinstall to Workspace.