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.