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

@openpets/crisp

v1.0.1

Published

Access Crisp conversations, send messages, manage contacts, and handle customer support chats through the Crisp API

Readme

Crisp Plugin for OpenCode

Access Crisp conversations, send messages, manage contacts, and handle customer support chats through the Crisp API.

Prerequisites

  • A Crisp account with API access
  • Plugin token credentials (identifier and key)

Setup

1. Install Dependencies

npm install

2. Get API Credentials

  1. Go to Crisp Settings > Tokens
  2. Create a new plugin token
  3. Copy the identifier and key

3. Configure Environment

cp .env.example .env

Edit .env with your credentials:

CRISP_IDENTIFIER=your-plugin-identifier
CRISP_KEY=your-plugin-key
CRISP_WEBSITE_ID=your-website-id  # Optional default

4. Find Your Website ID

Your website ID is a UUID like 8c842203-7ed8-4e29-a608-7cf78a7d2fcc. Find it in:

  • Your Crisp dashboard URL
  • Settings > Website Settings

Available Tools

crisp-list-conversations

List conversations for a Crisp website.

Parameters:

  • websiteId (optional): Website ID (uses env if not provided)
  • page (optional): Page number for pagination (default: 1)

Example:

opencode run "list all conversations from crisp"

crisp-get-conversation

Get details of a specific conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID

Example:

opencode run "get conversation session_700c65e1-85e2-465a-b9ac-ecb5ec2c9881"

crisp-get-messages

Get messages from a conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • timestampBefore (optional): Timestamp for pagination

Example:

opencode run "get messages from conversation session_abc123"

crisp-send-message

Send a message in a conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • content (required): Message content
  • type (optional): Message type (text, file, note, etc.)
  • from (optional): Sender type (operator or user)

Example:

opencode run "send 'Hello, how can I help?' to conversation session_abc123"

crisp-get-conversation-metas

Get metadata for a conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID

crisp-update-conversation-metas

Update metadata for a conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • nickname (optional): User nickname
  • email (optional): User email
  • phone (optional): User phone
  • segments (optional): Tags/segments array
  • dataJson (optional): Custom data as JSON string, e.g. '{"key": "value"}'

crisp-change-conversation-state

Change the state of a conversation.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • state (required): New state - pending, unresolved, or resolved

Example:

opencode run "resolve conversation session_abc123"

crisp-create-conversation

Create a new conversation.

Parameters:

  • websiteId (optional): Website ID

crisp-list-people

List people profiles (end-users/contacts).

Parameters:

  • websiteId (optional): Website ID
  • page (optional): Page number
  • searchText (optional): Search filter

crisp-get-person

Get a person's profile.

Parameters:

  • websiteId (optional): Website ID
  • peopleId (required): Person ID or email

crisp-get-routing-assign

Get conversation routing assignment.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID

crisp-assign-conversation

Assign a conversation to an operator.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • userId (required): Operator user ID

crisp-mark-messages-read

Mark messages as read.

Parameters:

  • websiteId (optional): Website ID
  • sessionId (required): Session/conversation ID
  • fingerprints (required): Array of message fingerprints
  • from (optional): Who is marking as read

crisp-list-operators

List all operators for a website.

Parameters:

  • websiteId (optional): Website ID

crisp-get-website

Get website details.

Parameters:

  • websiteId (optional): Website ID

Using from Other Projects

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    "/path/to/pets/crisp/index.ts"
  ]
}

Conversation States

Crisp conversations have three states:

  • pending: Waiting for first response
  • unresolved: Active conversation in progress
  • resolved: Conversation completed

Error Handling

All tools return JSON responses:

// Success
{
  "success": true,
  "data": { ... }
}

// Error
{
  "success": false,
  "error": "Error message"
}

API Reference

This plugin uses the official crisp-api Node.js wrapper. See the Crisp REST API Reference for full API documentation.

License

MIT