Extension Development

Build powerful automations for thermal printers. Create weather bots, RSS readers, or anything else you can imagine.

Quick Start

Extension Structure

1
Define metadata: Type, name, description, and settings schema
2
Set schedule: Use cron expressions for automated runs
3
Write run function: Main logic that processes data and prints
4
Test & deploy: Test locally, then publish to the marketplace

Basic Extension

const myExtension = {
  // Metadata
  name: 'Hello World',
  description: 'Simple greeting extension',
  version: '1.0.0',
  
  // Schedule (daily at 9 AM)
  schedule: '0 9 * * *',
  
  // Settings schema
  settings: {
    name: { type: 'string', default: 'World' },
    emoji: { type: 'string', default: '👋' }
  },
  
  // Main function
  async run(printer, settings) {
    const message = `Hello ${settings.name}! ${settings.emoji}`;
    await printer.print(message);
  }
};

Built-in Extensions

Weather Bot

Beginner
12.4k
4.8

Daily weather forecasts with customizable locations and times

Features

Current weather & forecasts
Multiple locations
Customizable schedule
Weather alerts

Code Example

// Weather Extension Example
const weatherExtension = {
  type: 'weather',
  schedule: '0 8 * * *', // Daily at 8 AM
  settings: {
    city: 'San Francisco',
    units: 'metric',
    includeforecast: true
  },
  async run(printer, settings) {
    const weather = await getWeather(settings.city);
    const message = formatWeatherMessage(weather);
    await printer.print(message);
  }
};

RSS Reader

Beginner
8.2k
4.6

Automatically print news and blog updates from RSS feeds

Features

Multiple RSS feeds
Content filtering
Customizable format
Duplicate detection

Code Example

// RSS Extension Example
const rssExtension = {
  type: 'rss',
  schedule: '0 */2 * * *', // Every 2 hours
  settings: {
    feedUrl: 'https://example.com/feed.xml',
    maxItems: 3,
    keywords: ['tech', 'startup']
  },
  async run(printer, settings) {
    const items = await fetchRSS(settings.feedUrl);
    const filtered = filterByKeywords(items, settings.keywords);
    await printer.print(formatRSSItems(filtered));
  }
};

Calendar Events

Intermediate
5.7k
4.7

Print upcoming calendar events and reminders

Features

Google Calendar sync
Event reminders
Meeting notifications
Custom time ranges

Code Example

// Calendar Extension Example
const calendarExtension = {
  type: 'calendar',
  schedule: '0 9 * * 1-5', // Weekdays at 9 AM
  settings: {
    calendarId: 'primary',
    daysAhead: 7,
    showAllDay: true
  },
  async run(printer, settings) {
    const events = await getCalendarEvents(settings);
    const message = formatCalendarEvents(events);
    await printer.print(message);
  }
};

Daily Quotes

Beginner
9.1k
4.5

Inspirational quotes to start your day

Features

Curated quote database
Category filtering
Custom quotes
Author information

Code Example

// Quote Extension Example
const quoteExtension = {
  type: 'quote',
  schedule: '0 7 * * *', // Daily at 7 AM
  settings: {
    category: 'motivation',
    showAuthor: true
  },
  async run(printer, settings) {
    const quote = await getRandomQuote(settings.category);
    const message = formatQuote(quote, settings.showAuthor);
    await printer.print(message);
  }
};

Community Extensions

Spotify Now Playing

by musiclover_dev

Print currently playing track from Spotify

3.2k
4.9

Crypto Prices

by cryptotrader

Track Bitcoin and other cryptocurrency prices

2.8k
4.4

Photo Printer

by ascii_artist

Convert photos to ASCII art for printing

1.9k
4.6

Coffee Timer

by barista_bot

Perfect brewing timers for coffee enthusiasts

1.5k
4.8

Development Tools

CLI Tool

Command-line tool for creating, testing, and deploying extensions.

npm install -g useprintr-cli

Test Environment

Local testing environment with virtual printers for development.

Debug Console

Real-time debugging and monitoring for your extensions.