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

@buildlog/openclaw-skill

v2.0.0

Published

Capture workflow recipes from AI coding sessions - prompts as artifacts for replication

Readme

@buildlog/openclaw-skill

Record, export, and share your AI coding sessions as replayable buildlogs.

npm version ClawHub License: MIT

Overview

The buildlog skill captures your OpenClaw AI-assisted coding sessions in real-time, creating replayable recordings that can be shared on buildlog.ai.

Perfect for:

  • 📚 Tutorials — Share how you built something step-by-step
  • 📝 Documentation — Create living documentation of complex implementations
  • 🐛 Debugging — Review sessions to understand what went wrong
  • 🎓 Learning — Study how others approach problems

Installation

From ClawHub (Recommended)

openclaw skill install buildlog

From npm

npm install @buildlog/openclaw-skill

Quick Start

Once installed, just talk to OpenClaw:

You: Start a buildlog "Building a REST API"
🔴 Recording started: "Building a REST API"

You: Create an Express server with TypeScript
[OpenClaw creates files...]

You: Stop the buildlog
✅ Recording stopped. 12 exchanges captured.
Would you like to upload to buildlog.ai?

You: Yes
✅ Uploaded to buildlog.ai!
🔗 https://buildlog.ai/b/abc123

Commands

Recording

| Command | Description | |---------|-------------| | Start a buildlog [title] | Begin recording a new session | | Stop the buildlog | End recording and optionally upload | | Pause the buildlog | Temporarily pause recording | | Resume the buildlog | Continue a paused recording |

Exporting

| Command | Description | |---------|-------------| | Export this session as a buildlog | Convert current session to buildlog format | | Export the last [N] messages | Export a portion of the session |

Uploading

| Command | Description | |---------|-------------| | Upload the buildlog | Push to buildlog.ai | | Share the buildlog | Upload and get a shareable link |

Annotations

| Command | Description | |---------|-------------| | Add a note: [text] | Add commentary to the current point | | Mark this as important | Flag the current exchange | | Add chapter: [title] | Create a chapter marker |

Status

| Command | Description | |---------|-------------| | Buildlog status | Check recording state | | Show buildlog info | Display current recording details |

Configuration

Add to your OpenClaw configuration file (~/.openclaw/config.json):

{
  "skills": {
    "buildlog": {
      "apiKey": "your-api-key",
      "autoUpload": false,
      "defaultPublic": true,
      "includeFileContents": true,
      "maxFileSizeKb": 100
    }
  }
}

Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | apiKey | string | — | Your buildlog.ai API key (optional for public uploads) | | autoUpload | boolean | false | Automatically upload when recording stops | | defaultPublic | boolean | true | Make buildlogs public by default | | includeFileContents | boolean | true | Include file content snapshots | | maxFileSizeKb | number | 100 | Maximum file size to include in buildlog |

Programmatic Usage

You can also use the skill programmatically:

import { 
  BuildlogRecorder, 
  BuildlogExporter, 
  BuildlogUploader 
} from '@buildlog/openclaw-skill';

// Create a recorder
const recorder = new BuildlogRecorder({
  includeFileContents: true,
  maxFileSizeKb: 100,
});

// Start recording
recorder.start('My Session');

// Handle events
recorder.handleEvent({
  type: 'user_message',
  timestamp: Date.now(),
  data: { content: 'Create a function...' },
});

// Stop and get buildlog
const session = recorder.stop();
const buildlog = recorder.toBuildlog();

// Upload
const uploader = new BuildlogUploader({ apiKey: 'your-key' });
const result = await uploader.upload(buildlog);

console.log('Uploaded:', result.url);

Retroactive Export

Export an existing session history:

import { BuildlogExporter } from '@buildlog/openclaw-skill';

const exporter = new BuildlogExporter({
  title: 'My Coding Session',
  tags: ['typescript', 'api'],
});

const buildlog = exporter.export(sessionHistory);

Events

The skill emits the following events that you can subscribe to:

skill.recorder.on('started', (event) => {
  console.log('Recording started:', event.data.title);
});

skill.recorder.on('stopped', (event) => {
  console.log('Recording stopped:', event.data.session);
});

| Event | Description | |-------|-------------| | buildlog:started | Recording began | | buildlog:stopped | Recording ended | | buildlog:paused | Recording paused | | buildlog:resumed | Recording resumed | | buildlog:uploaded | Buildlog uploaded successfully | | buildlog:error | An error occurred |

API Reference

BuildlogSkill

Main skill class for OpenClaw integration.

const skill = createBuildlogSkill(config);
await skill.initialize(openClawContext);
const handled = await skill.handleMessage(ctx, 'start a buildlog');
skill.dispose();

BuildlogRecorder

State machine for recording sessions.

const recorder = new BuildlogRecorder(config);
recorder.start('Title');
recorder.handleEvent(event);
recorder.addNote('Important point');
recorder.addChapter('Setup');
recorder.pause();
recorder.resume();
const session = recorder.stop();

BuildlogExporter

Convert session history to buildlog format.

const exporter = new BuildlogExporter(options);
const buildlog = exporter.export(sessionHistory);
const partial = exporter.exportLastN(sessionHistory, 10);

BuildlogUploader

Upload buildlogs to buildlog.ai.

const uploader = new BuildlogUploader({ apiKey });
const result = await uploader.upload(buildlog, options);
const info = await uploader.getInfo(id);
await uploader.delete(id);

Privacy

  • 🔒 Buildlogs can be public or private
  • 🔑 API keys are never included in exports
  • 🎛️ You control what gets shared
  • 🗑️ Delete buildlogs anytime at buildlog.ai

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Watch mode
npm run dev

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

License

MIT © buildlog.ai

Links