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-cliTest Environment
Local testing environment with virtual printers for development.
Debug Console
Real-time debugging and monitoring for your extensions.