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

@forgemcp/proteus

v0.0.5

Published

Universal content generation engine using Gemini (Proteus)

Readme

@forgemcp/proteus

License: MIT npm version

Proteus is a universal, configuration-driven content generation engine powered by Google Gemini. It allows you to define flexible workflows ("templates") to generate text, structured data, and images for any platform (Xiaohongshu, WeChat, Twitter, Email, etc.) without writing code.

Why Proteus? Named after the shapeshifting Greek sea god, Proteus adapts to any content structure you define. Whether you need a 3-stage visual pipeline or a simple text generator, Proteus handles the flow.

✨ Features

  • 🧩 Template System: Configurable generation pipelines via proteus.json.
  • 🖼️ Auto-Visuals: Integrated AI image generation (Imagen 3 / Gemini Pro Vision).
  • 👁️ Multimodal: Support for reference images to guide generation.
  • 🧠 Chain Engine: Supports complex flows (e.g., Outline -> Visuals -> Content).
  • ⚡️ Fast & Cheap: Optimized for gemini-2.0-flash by default.
  • ☁️ Unified Auth: Works with Google AI Studio (API Key) and **Vertex AI out of the box.

📦 Installation

# Using Bun
bun add @forgemcp/proteus

## 🚀 Usage

### 1. As a CLI Tool

#### Local Development (Clone)
If you have cloned the repository, run directly via `bun`:

```bash
# Initialize a config file
proteus init

# Run with default template (RedNote style)
proteus --template rednote-standard --topic "Spring Outfit Ideas" --style "Casual" --generate-images

# Use reference images
proteus --template rednote-standard --topic "Analyze this style" --reference-images ./look1.jpg ./look2.jpg

Global Usage (bunx)

If you want to use it without cloning, use bunx:

bunx @forgemcp/proteus --template rednote-standard --topic "Spring Outfit Ideas" --style "Casual"

2. As a Library (Node.js/TypeScript)

import { generateContent } from "@forgemcp/proteus";

const result = await generateContent({
  topic: "Hidden Gem Cafes in Tokyo",
  style: "Emotional",
  imageCount: 5,
  apiKey: process.env.GEMINI_API_KEY,
  template: "rednote-standard",
  referenceImages: ["./photo1.jpg"]
});

if (result.ok) {
  console.log(result.data);
}

📚 Scenarios

1. Xiaohongshu: OpenClaw Agent Intro (Crayfish)

Generate a tech intro comparing the "Claw" agent to a powerful crayfish.

proteus --template rednote-standard --topic "OpenClaw: The Intelligent Crayfish Agent 🦞" --style "Educational"
{
  "ok": true,
  "data": {
    "title": "地表最强AI特工!OpenClaw小龙虾来啦🦞告别重复劳动自动化神具!",
    "content": "宝子们!我真的挖到宝了!如果你还在每天重复点网页、搬运数据,那这个AI黑科技你一定要看!🦞\n\n它是OpenClaw,一个真正拥有“视觉”和“大脑”的超级AI特工!它不只是陪你聊天,而是真的会“动手”帮你干活!✨...",
    "tags": ["AI", "OpenClaw", "人工智能", "生产力工具", "自动化"],
    "outline": [
      {
        "page_num": 1,
        "type": "cover",
        "title": "地表最强AI特工!OpenClaw小龙虾Agent来了🦞",
        "main_content": "[封面]\n标题:地表最强AI特工!OpenClaw小龙虾Agent来了🦞...",
        "image_suggestion": "一只充满科技感、戴着赛博眼镜的小龙虾正在操控多个浮空的虚拟屏幕..."
      }
    ],
    "imagePrompts": [
      "请生成一张小红书风格的图文内容图片。页面内容:[封面]..."
    ],
    "metadata": {
      "model": "gemini-3-flash-preview",
      "style": "Educational",
      "topic": "OpenClaw: The Intelligent Crayfish Agent 🦞",
      "template": "rednote-standard"
    }
  }
}

2. WeChat Moments: Life Update

Generate a short, punchy caption with a single image prompt.

proteus --template wechat-moments --topic "Friday Night Vibes" --style "Casual"

🛠️ Configuration (proteus.json)

Proteus looks for proteus.json in the current directory or ~/.config/proteus/.

Example proteus.json defining a simple workflow:

{
  "templates": {
    "simple-tweet": {
      "id": "simple-tweet",
      "steps": [
        {
          "id": "gen_text",
          "type": "generate_text",
          "name": "Generate Tweet",
          "template": "tweet.j2",
          "outputKey": "content"
        }
      ]
    }
  }
}

⚙️ Environment Variables

| Variable | Description | Required | |----------|-------------|----------| | GEMINI_API_KEY | API Key from Google AI Studio | Yes (or Vertex) | | GEMINI_MODEL | Model ID (e.g., gemini-2.0-flash) | No (Default: gemini-2.0-flash) | | GOOGLE_APPLICATION_CREDENTIALS | Path to Service Account JSON | Optional (For Vertex AI Auth) |

📄 License

MIT © ForgeMCP