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

@elgap/edukaai-opencode

v0.1.0-beta.0

Published

OpenCode plugin to capture conversations to EdukaAI for training data

Downloads

15

Readme

EdukaAI OpenCode

CI NPM Version

OpenCode plugin to capture conversations to EdukaAI for training data.

Quick Start

# 1. Install the plugin
npm install @elgap/edukaai-opencode

# 2. Add to your opencode.json
{
  "plugin": ["@elgap/edukaai-opencode"]
}

# 3. Activate capture (uses default dataset)
npx edukaai-opencode on

# 4. Start OpenCode and chat!
opencode

Installation

npm install @elgap/edukaai-opencode

Or from a local tarball:

npm install ./elgap-edukaai-opencode-0.1.0-beta.0.tgz

Note: After install, the plugin copies command files to .opencode/commands/. If commands don't appear, run:

node node_modules/@elgap/edukaai-opencode/bin/postinstall.js

Configuration

1. Add to opencode.json

Create or edit opencode.json in your project root:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@elgap/edukaai-opencode"]
}

2. Set Server URL (Optional)

Create .env in your project:

EDUKAAI_URL=http://localhost:3030

Defaults to http://localhost:3030 if not set.

Usage

Activate Capture

With default dataset:

npx edukaai-opencode on

With specific dataset:

npx edukaai-opencode on my-dataset

With dataset ID:

npx edukaai-opencode on 1

Deactivate Capture

npx edukaai-opencode off

Check Status

npx edukaai-opencode status

Shows whether capture is active and which dataset is configured.

Get Help

npx edukaai-opencode --help

How It Works

  1. CLI creates config: Running npx edukaai-opencode on creates .opencode/edukaai-capture-config.json
  2. Plugin loads on OpenCode startup: Reads config and starts monitoring
  3. Captures conversations: On each completed conversation (session.idle), sends user-assistant pairs to EdukaAI
  4. Automatic cleanup: Removes processing files after activation/deactivation

Note: The plugin captures ALL text content including responses after tool usage (web search, file reads, etc).

Data Format

Sent to POST /api/capture:

{
  "source": "opencode",
  "apiVersion": "1.0",
  "session": {
    "id": "opencode_1234567890",
    "name": "Session abc123",
    "startedAt": "2026-03-18T..."
  },
  "records": [{
    "instruction": "user message",
    "output": "assistant response",
    "messageId": "msg_abc123",
    "timestamp": "2026-03-18T...",
    "context": {
      "environment": {
        "os": "darwin",
        "workingDirectory": "/path/to/project",
        "projectName": "my-project"
      }
    }
  }],
  "options": {
    "datasetId": 1,
    "autoApprove": false,
    "skipDuplicates": true,
    "enrichMetadata": true
  }
}

When no dataset is specified, datasetId is omitted and the server uses its default.

Troubleshooting

Check if plugin is working

View the log file:

cat .opencode/edukaai-capture.log

Plugin not capturing

  1. Check activation status:

    npx edukaai-opencode status
  2. Verify config file exists:

    cat .opencode/edukaai-capture-config.json
  3. Check logs for errors:

    tail -f .opencode/edukaai-capture.log

Files Created

  • .opencode/edukaai-capture-config.json - Plugin configuration
  • .opencode/edukaai-capture.log - Debug and error logs

Contributing

License

MIT