New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

@itlackey/openkit

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package was removed
Sorry, it seems this package was removed from the registry

@itlackey/openkit

Developer toolkit to package and publish OpenCode extensions (agents, commands, plugins, skills, tools, themes) as one npm plugin.

latest
Source
npmnpm
Version
0.2.2
Version published
Maintainers
1
Created
Source

OpenKit

Ship production-ready OpenCode extensions as one npm package.

OpenKit gives you a CLI and installer library for packaging and distributing agents, commands, plugins, skills, tools, and themes. Add files to opencode/, publish once, and your users install with a single command or plugin entry.

Why developers use OpenKit

  • CLI for discovery and management: search, add, and remove openkit packages from the command line.
  • One package, full extension surface: ship commands, agents, skills, tools, plugins, and themes together.
  • Safe installs by default: existing user files are preserved (overwrite: false).
  • Works with real plugin code: use standalone installer mode or compose it into your own plugin.
  • Low maintenance: no custom copy scripts or postinstall hacks.

CLI

OpenKit includes a CLI for managing openkit-compatible packages in your project.

Search for packages

Find openkit-compatible packages on npm and GitHub:

npx @itlackey/openkit search [query]

Searches npm for packages with the openkit keyword and GitHub for repositories with the openkit topic.

Add a package

Install a package and copy its extensions into your project:

npx @itlackey/openkit add <package>

This will:

  • Install the npm package.
  • Copy its opencode/ assets into your project's .opencode/ directory.
  • Register the package in opencode.json.

Remove a package

Remove a package and clean up its extensions:

npx @itlackey/openkit remove <package>

This will:

  • Remove copied extension files from .opencode/.
  • Unregister the package from opencode.json.
  • Uninstall the npm package.

Quick start

1) Install OpenKit

bun add @itlackey/openkit

If you also register tools directly in your plugin, add @opencode-ai/plugin too.

2) Add extensions

Drop files into the opencode/ directory in your package:

opencode/
├── agents/       # .md    — agent definitions (primary or subagent)
├── commands/     # .md    — slash commands
├── plugins/      # .ts    — full Plugin API
├── skills/       # SKILL.md in named folders
├── tools/        # .ts    — custom tools
└── themes/       # .json  — color themes

3) Export the installer plugin

Create a plugin that uses the OpenKit installer to copy your extensions into the user's project:

import { createInstallerPlugin } from "@itlackey/openkit/install"
export const plugin = createInstallerPlugin({
  name: "my-opencode-extension",
  sourceUrl: import.meta.url,
})

4) Register in a project

Add your package to the project's opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["my-opencode-extension"]
}

When OpenCode starts, the installer copies your opencode/ files into the project's .opencode/ directory. Existing files are never overwritten by default, so user customizations stay intact.

Installer usage

Standalone installer

Use this when your package only ships file-based extensions (agents, commands, skills, tools, themes):

import { createInstallerPlugin } from "@itlackey/openkit/install"
export const plugin = createInstallerPlugin({
  name: "my-opencode-extension",
  sourceUrl: import.meta.url,
})

Compose with an existing plugin

Mix the installer with your own tools and hooks:

import { type Plugin, tool } from "@opencode-ai/plugin"
import { installExtensions } from "@itlackey/openkit/install"
export const plugin: Plugin = async (input) => {
  await installExtensions({
    sourceUrl: import.meta.url,
    targetDir: input.directory,
    name: "my-opencode-extension",
  })
  return {
    tool: {
      "my-tool": tool({
        description: "Example tool",
        args: {
          message: tool.schema.string().describe("Message to echo"),
        },
        async execute({ message }) {
          return `my-tool: ${message}`
        },
      }),
    },
  }
}

package.json essentials

{
  "name": "my-opencode-extension",
  "type": "module",
  "main": "./dist/index.js",
  "types": "./dist/index.d.ts",
  "exports": {
    ".": {
      "types": "./dist/index.d.ts",
      "default": "./dist/index.js"
    }
  },
  "files": ["dist", "opencode"],
  "dependencies": {
    "@itlackey/openkit": "^0.1.0"
  }
}

Installer options

OptionRequiredDefaultDescription
nameyesLabel for log messages
dirsnoall 6 typesLimit which subdirectories to install
overwritenofalseOverwrite existing files
sourceUrlyesPass import.meta.url to resolve the package's opencode/ directory

Extension directory layout

Each extension type lives in a subdirectory under opencode/:

DirectoryFile typeDescription
agents/.mdAgent definitions (primary or subagent)
commands/.mdSlash commands
plugins/.tsFull Plugin API implementations
skills/SKILL.md in named foldersPrompt templates
tools/.tsCustom tools
themes/.jsonColor themes

OpenKit agent + tools

This package includes OpenCode-ready plugin management helpers:

  • openkit-search — search for OpenKit-compatible packages
  • openkit-add — install and register a package in opencode.json
  • openkit-remove — remove a package and clean copied extension files
  • openkit skill — guidance for selecting the best plugin using OpenKit search + curl
  • @openkit-agent — subagent for plugin discovery and lifecycle management

Tool usage examples

From your assistant, call these tools directly:

  • openkit-search with query: "discord moderation"
  • openkit-add with packageName: "@example/opencode-discord"
  • openkit-remove with packageName: "@example/opencode-discord"

Agent usage

Use @openkit-agent when users ask to:

  • Find the best plugin for a capability
  • Install/add a plugin package
  • Remove/uninstall a plugin package

The agent uses the OpenKit tools above and follows the openkit skill workflow for candidate evaluation and recommendations.

Publish checklist

Before running npm publish:

  • Use a clear package name (my-opencode-extension) and concise description.
  • Add searchable keywords like opencode, opencode-plugin, opencode-extension, openkit.
  • Confirm main/exports point to compiled JS in dist/ and types points to declarations.
  • Ensure files includes everything users need (dist, opencode).
  • Test installation with a real opencode.json plugin entry in a sample project.

Docs

Keywords

opencode

FAQs

Package last updated on 24 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts