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

plotlink-ows

v1.2.100

Published

<div align="center">

Downloads

558

Readme

PlotLink OWS Writer

Anyone can become a fiction writer with just an idea.

What is PlotLink OWS Writer?

A local writing workspace that pairs you with an AI co-writer to create and publish tokenized fiction stories on plotlink.xyz. Claude CLI writes in an embedded terminal, you preview and iterate live, and your OWS wallet signs on-chain transactions — your private key never leaves your machine.

Every story you publish becomes a tradable token on a bonding curve. Readers who believe in your story buy in early, and you earn 5% royalties on every trade.

Why it matters

  • No writing experience needed — AI does the heavy lifting
  • No crypto complexity — OWS handles wallet and signing
  • You keep control — keys encrypted locally, bring your own AI
  • Earn from day one — stories monetize through bonding curves immediately

How it Works

You: "Let's write a sci-fi story about an AI that discovers dreams"

  ↓  Claude brainstorms, outlines, writes chapter files

Stories saved to: stories/dreaming-ai/genesis.md, plot-01.md, ...

  ↓  Live preview in the browser — review and iterate

  ↓  Click "Publish" on any chapter

On-chain: Story published to PlotLink on Base
          → Token + bonding curve deployed
          → You earn 5% royalties on every trade

The Flow

  1. Setupnpx plotlink-ows init (passphrase + OWS wallet)
  2. Startnpx plotlink-ows opens the three-panel workspace
  3. Write — Claude CLI runs in the embedded terminal, creating story files
  4. Preview — Live markdown preview auto-refreshes as Claude writes
  5. Publish — Click publish on any chapter to go on-chain via your OWS wallet
  6. Earn — Your story is live on plotlink.xyz with a bonding curve

🔐 Built on Open Wallet Standard (OWS)

All signing operations use OWS — no raw private keys are ever exposed to scripts or environment variables.

| Operation | How | |-----------|-----| | Wallet creation | npx plotlink-ows init creates encrypted wallet in ~/.ows/ | | Story publishing | viem wallet client with OWS custom account adapter | | Transaction signing | OWS decrypts key in memory, signs, zeroes immediately | | Policy control | Chain-restricted to Base, passphrase-gated |

Your key is encrypted at rest, signing happens in-process, and the key never leaves the vault.


🚀 Quick Start

Prerequisites

  • Node.js 20+
  • Claude CLI (or any AI assistant)
  • A small amount of ETH on Base for gas (~$0.01 per publish)

Install & Run

npx plotlink-ows init    # set passphrase + create wallet
npx plotlink-ows         # start app + open browser

The setup wizard creates your encrypted OWS wallet. Then the workspace opens with Claude CLI ready to write.

Commands

npx plotlink-ows         # Start app (Ctrl+C to stop)
npx plotlink-ows init    # Guided setup wizard
npx plotlink-ows status  # Show config + wallet info

🔑 Wallet Setup

PlotLink OWS uses an encrypted local wallet via Open Wallet Standard. No raw private keys are exposed to scripts or environment variables.

Initial Setup

npx plotlink-ows init

The setup wizard will:

  1. Ask you to create a passphrase (encrypts your wallet at rest)
  2. Generate a new OWS wallet in ~/.ows/
  3. Display your Base (L2) wallet address

Funding Your Wallet

Send a small amount of ETH on Base to your wallet address. Publishing costs less than $0.05 per story.

You can bridge ETH from Ethereum mainnet to Base using the official Base Bridge or any supported bridge.

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | OWS_PASSPHRASE | Yes | Your wallet encryption passphrase | | NEXT_PUBLIC_RPC_URL | No | Custom Base RPC URL (defaults to https://mainnet.base.org) | | NEXT_PUBLIC_APP_URL | No | PlotLink API URL (defaults to https://plotlink.xyz) |

Copy .env.example to .env and fill in your values:

cp .env.example .env

Security best practices:

  • Never share your passphrase or wallet files with anyone
  • Use a dedicated wallet for agent operations — do not reuse your main wallet
  • Never commit .env or wallet files to version control
  • Store backups of ~/.ows/ in a secure, offline location

🏗️ Architecture

┌──────────────────────────────────────────────────┐
│         Your Computer (localhost:7777)            │
│                                                  │
│  ┌──────────┐  ┌──────────────┐  ┌───────────┐  │
│  │  Story   │  │  Terminal    │  │  Preview  │  │
│  │  Browser │  │  (Claude CLI)│  │  (Live MD)│  │
│  └────┬─────┘  └──────┬───────┘  └─────┬─────┘  │
│       │               │               │         │
│       └───────┬───────┘               │         │
│               ↓                       │         │
│      ┌────────────────┐    ┌─────────────────┐  │
│      │  stories/      │    │  OWS Wallet     │  │
│      │  (local files) │    │  (encrypted)    │  │
│      └────────────────┘    └────────┬────────┘  │
│                              sign + publish     │
└─────────────────────┬───────────────────────────┘
                      ↓
             ┌────────────────┐     ┌──────────────┐
             │  Base (L2)     │     │  IPFS        │
             │  StoryFactory  │     │  (Filebase)  │
             │  Bonding Curve │     │  Content     │
             └────────────────┘     └──────────────┘
                      ↓
             ┌────────────────┐
             │  plotlink.xyz  │
             │  Live story +  │
             │  token trading │
             └────────────────┘

📁 Story Structure

Stories are plain markdown files — no database, no proprietary format.

stories/
  my-story/
    structure.md    # Outline, characters, arc (not published)
    genesis.md      # Synopsis hook (~1,000 chars)
    plot-01.md      # Chapter 1 (max 10,000 chars)
    plot-02.md      # Chapter 2
    ...

| File | Purpose | Limit | |------|---------|-------| | structure.md | Story architecture — characters, world, arc | No limit (not published) | | genesis.md | Synopsis hook that makes readers want more | ~1,000 chars | | plot-*.md | Story chapters, published sequentially | 10,000 chars each |


💰 Cost

| Operation | Cost | |-----------|------| | Publishing a story (genesis) | ~$0.02 gas + creation fee | | Chaining a new chapter | ~$0.01 gas | | Total per story | < $0.05 |

Royalties: 5% on every trade of your story token, forever.


🛠️ Tech Stack

| Layer | Technology | |-------|-----------| | Backend | Hono (localhost:7777) | | Frontend | React 19 + Vite | | Terminal | xterm.js + node-pty (embedded Claude CLI) | | Wallet | OWS (@open-wallet-standard/core) | | AI | Claude CLI (or any AI assistant) | | Chain | Base (L2) | | Storage | IPFS via PlotLink API | | On-chain | PlotLink StoryFactory + Mint Club V2 bonding curves | | Identity | ERC-8004 agent registry | | Design | PlotLink Moleskine — warm cream, Lora serif, literary |


What is PlotLink?

PlotLink is an on-chain storytelling protocol on Base. Writers publish storylines that automatically deploy an ERC-20 token on a bonding curve. Each new chapter drives trading demand, and every trade generates 5% royalties for the author. Stories are stored permanently on IPFS.

PlotLink supports both human writers and AI agent writers via ERC-8004 identity registry.


Development

Use Node 20 with npm 10. The CI pipeline runs this combination, and newer npm majors can rewrite optional peer dependency entries in package-lock.json.

git clone https://github.com/realproject7/plotlink-ows.git
cd plotlink-ows
nvm use
npm install
npm run app:dev      # Start local writer app (Hono + Vite dev)
npm run app:build    # Build frontend for production
npm run app:start    # Serve production build

See .env.example for configuration options.

Release Checklist

For manual npm releases, always update GitHub Releases as part of publish preparation. The release tag must match the npm version (vX.Y.Z), and the release page should be created or updated before running npm publish.

npm run preflight
git push origin main --follow-tags
gh release create "v$(node -p 'require("./package.json").version')" --generate-notes --latest
npm publish

Prefer npm run release:patch, npm run release:minor, or npm run release:major when the version bump is straightforward; those scripts already include GitHub Release creation.


🔗 Links


License

MIT