Minimal Backend Extension¶
A simple extension that counts messages and exposes a {{msg_count}} macro.
spindle.json¶
{
"version": "1.0.0",
"name": "Message Logger",
"identifier": "message_logger",
"author": "Dev",
"github": "https://github.com/dev/message-logger",
"homepage": "https://github.com/dev/message-logger",
"permissions": []
}
src/backend.ts¶
declare const spindle: import('lumiverse-spindle-types').SpindleAPI
let messageCount = 0
spindle.registerMacro({
name: 'msg_count',
category: 'extension:message_logger',
description: 'Total messages sent this session',
returnType: 'integer',
handler: '',
})
spindle.updateMacroValue('msg_count', '0')
spindle.on('MESSAGE_SENT', (payload: any) => {
messageCount++
spindle.updateMacroValue('msg_count', String(messageCount))
spindle.log.info(`Message #${messageCount}: ${payload.message?.content?.slice(0, 80)}`)
})
spindle.log.info('Message Logger loaded!')
How It Works¶
- Registers a
msg_countmacro using the push model (empty handler) - Subscribes to
MESSAGE_SENTevents - On each message, increments the counter and pushes the new value
- Users can include
{{msg_count}}in prompts to inject the current count