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

@uniqueli/openwork

v0.4.1

Published

A tactical agent interface for deepagentsjs with multiple custom API support

Downloads

370

Readme

@uniqueli/openwork

npm License: MIT

A desktop interface for deepagentsjs — an opinionated harness for building deep agents with filesystem capabilities, planning, and subagent delegation.

✨ Enhanced with Multiple Custom API Support + MCP Integration - Add unlimited OpenAI-compatible API providers and MCP servers with a single click!

openwork screenshot

[!CAUTION] openwork gives AI agents direct access to your filesystem and the ability to execute shell commands. Always review tool calls before approving them, and only run in workspaces you trust.

Get Started

# Run directly with npx
npx @uniqueli/openwork

# Or install globally
npm install -g @uniqueli/openwork
openwork

Requires Node.js 18+.

From Source

git clone https://github.com/langchain-ai/openwork.git
cd openwork
npm install
npm run dev

Or configure them in-app via the settings panel.

Supported Models

| Provider | Models | | ---------- | ----------------------------------------------------------------------------------------------------- | | Anthropic | Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5, Claude Opus 4.1, Claude Sonnet 4 | | OpenAI | GPT-5.2, GPT-5.1, o3, o3 Mini, o4 Mini, o1, GPT-4.1, GPT-4o | | Google | Gemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite | | Custom | Add unlimited custom providers! |

✨ Multiple Custom API Providers

New in v0.2.0: Add multiple custom OpenAI-compatible API providers directly from the UI!

How to Add Custom Providers

  1. Click the model selector in the chat interface
  2. Click the "+ 添加Provider" button at the bottom of the provider list
  3. Fill in the form:
    • ID: Unique identifier (e.g., moonshot, zhipu, deepseek)
    • Display Name: Name shown in UI (e.g., Moonshot AI, Zhipu AI)
    • Base URL: API endpoint (e.g., https://api.moonshot.cn/v1)
    • API Key: Your API key
    • Model Name: Model identifier (e.g., kimi-k2-turbo-preview)
  4. Click Save - your new provider appears immediately!

Supported Custom APIs

Works with any OpenAI-compatible API:

  • Chinese AI Providers: Moonshot AI (Kimi), Zhipu AI (GLM), DeepSeek, Baichuan, etc.
  • Self-hosted models: vLLM, Text Generation WebUI, LocalAI, Ollama (with OpenAI compatibility)
  • Cloud services: Azure OpenAI, AWS Bedrock (with proxy), Cloudflare AI
  • Other providers: Together AI, Anyscale, Fireworks AI, etc.

Example Configurations

Moonshot AI (Kimi)

ID: moonshot
Display Name: Moonshot AI
Base URL: https://api.moonshot.cn/v1
Model Name: kimi-k2-turbo-preview

Zhipu AI (GLM)

ID: zhipu
Display Name: Zhipu AI
Base URL: https://open.bigmodel.cn/api/paas/v4
Model Name: glm-4-plus

DeepSeek

ID: deepseek
Display Name: DeepSeek
Base URL: https://api.deepseek.com/v1
Model Name: deepseek-chat

Configure via Settings UI or by setting environment variables:

CUSTOM_BASE_URL=https://api.example.com/v1
CUSTOM_API_KEY=your-api-key
CUSTOM_MODEL=your-model-name  # optional

🔌 MCP Server Integration

New in v0.4.0: Full support for Model Context Protocol (MCP) servers!

What is MCP?

MCP (Model Context Protocol) is an open protocol that allows AI assistants to securely connect to external data sources and tools. With MCP, your agent can:

  • Access API documentation (YAPI, Swagger, etc.)
  • Query databases
  • Search the web
  • Interact with file systems
  • And much more!

How to Add MCP Servers

  1. Open the right panel in openwork
  2. Click the "MCP" section to expand it
  3. Click the "+ 添加" button
  4. Fill in the form:
    • 传输类型: STDIO (local process) or SSE (HTTP endpoint)
    • 服务器ID: Unique identifier (e.g., yapi-devloper-mcp)
    • 显示名称: Name shown in UI (e.g., YAPI开发助手)
    • 命令 (STDIO only): Command to run (e.g., npx)
    • 命令参数 (STDIO only): Arguments (e.g., -y yapi-devloper-mcp@latest --stdio)
    • 环境变量: Optional key-value pairs for sensitive data (API keys, etc.)
    • 分类: Choose a category for better organization
  5. Click "测试连接" to verify the configuration
  6. Click "创建服务器" to save

Example Configurations

YAPI Developer MCP

ID: yapi-devloper-mcp
Name: YAPI开发助手
Type: STDIO
Command: npx
Args: -y yapi-devloper-mcp@latest --stdio
Environment Variables:
  YAPI_BASE_URL: https://yapi.jiaoyanyun.com
  YAPI_USERNAME: your-username
  YAPI_PASSWORD: your-password
Category: API

Context7 (Vector Context Service)

ID: context7
Name: Context7
Type: STDIO
Command: npx
Args: -y @upstash/context7-mcp@latest
Category: Custom

Filesystem MCP

ID: filesystem
Name: 文件系统
Type: STDIO
Command: npx
Args: -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory
Category: Filesystem

GitHub MCP

ID: github
Name: GitHub
Type: STDIO
Command: npx
Args: -y @modelcontextprotocol/server-github
Environment Variables:
  GITHUB_PERSONAL_ACCESS_TOKEN: ghp_xxxxxxxxxxxx
Category: Development

Brave Search MCP

ID: brave-search
Name: Brave搜索
Type: SSE
URL: https://sse.brave.search
Environment Variables:
  BRAVE_API_KEY: your-brave-api-key
Category: Productivity

Using MCP Tools

Once connected, MCP tools are automatically available to your agent:

  • Tools are discovered and loaded automatically
  • Each server shows its connection status and tool count
  • Tools appear as regular LangChain tools in the agent's toolkit
  • Disconnect or disable servers to temporarily stop using their tools

Managing MCP Servers

  • Connect/Disconnect: Click the plug icon to connect/disconnect
  • Enable/Disable: Click the power icon to enable/disable a server
  • Delete: Click the trash icon to permanently remove a server
  • View Status: See real-time connection status (Connected/Connecting/Error/Disconnected)

Changelog

v0.4.0 (2026-02-10)

  • 🔌 MCP Integration: 新增Model Context Protocol (MCP) 完整支持
    • 支持STDIO和SSE两种传输方式
    • 可视化MCP服务器管理界面(右侧面板新增MCP分区)
    • 支持环境变量配置(用于API密钥等敏感信息)
    • 自动将MCP工具转换为LangChain工具
    • Agent运行时自动加载已连接的MCP工具
    • 实时显示连接状态和工具数量
    • 支持测试连接功能
    • 已测试:YAPI Developer MCP、Context7等

v0.3.0 (2026-02-09)

  • 🚀 Skills System Major Upgrade: 技能系统重大升级
    • Performance: 将所有文件操作转换为异步I/O,解决UI阻塞问题
    • 🔒 Security: 新增完整的输入验证系统,防止注入攻击和资源耗尽
    • 💾 Memory: 实现LRU缓存机制(最大100个技能),防止内存泄漏
    • 🎯 Skill Combination: 新增技能组合功能,支持跨学科专业知识整合
    • 📝 Version Management: 为所有技能添加语义化版本控制
    • 🛠️ Error Handling: 增强错误处理系统,提供中文错误消息和恢复建议
  • 🐛 UI Fix: 修复创建技能对话框在From Template模式下窗口过大、关闭按钮不可见的问题

v0.2.4 (2026-02-06)

  • 聊天建议卡片: 新对话空状态下显示可点击的建议卡片(文件整理、内容创作、文档处理),点击即可快速开始对话

v0.2.3 (2026-02-04)

  • Skills System: 新增技能配置系统,支持 12 个内置技能和自定义技能创建
  • 🐛 修复 deleteUserSkill 误删所有技能记录的严重 Bug
  • 🐛 修复 Switch 组件、创建技能对话框、技能过滤等多个问题
  • ⚡ 技能初始化改为懒加载,提升启动性能

v0.2.2 (2026-xx-xx)

  • ✨ 支持多个自定义 API 配置
  • 🔧 动态 Provider 系统

v0.2.1 (2026-01-19)

  • 🐛 Critical Fix: Fixed "Missing credentials" error for users without OpenAI API key
  • 🔧 Custom API now works correctly even when OPENAI_API_KEY is not set in environment
  • 📝 Improved logging for debugging custom API configurations

v0.2.0 (2026-01-18)

  • Multiple Custom API Providers: Add unlimited custom providers via UI
  • 🎨 Improved UX: One-click provider addition with "+ 添加Provider" button
  • 🔧 Better Configuration: Each provider has its own name, base URL, API key, and model
  • 🌐 Chinese AI Support: Perfect for Moonshot AI, Zhipu AI, DeepSeek, and other providers
  • 📝 Simplified Settings: Cleaner settings dialog focused on standard providers

v0.1.0 (2026-01-15)

  • 🎉 Initial release with basic custom API support
  • 🔑 Single custom API configuration via Settings

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Report bugs via GitHub Issues.

Credits

This project is a fork of openwork by LangChain with enhanced custom API support.

License

MIT — see LICENSE for details.