Overview
If you're building skills, you know it's difficult to see how well your skill is actually performing, and how changes to your skill actually influence outputs for your users.
Ideally, you walk over to your users' desks and watch them use your skill. If your users are far away, you have to rely on copy-and-pasting Claude outputs, or your users sending you blurry or inconveniently-cropped screenshots … if they remember and care enough to do so.
Lore gives you real-time visibility into how your users' agents actually interpret and use your skills.
No Code
No-Code Integration
You can get observability for your skills without writing any code by asking your users to sign up for Lore and sharing specific threads with you:
- Claim your skill/plugin name in Lore by filling out a form. Once submitted, this will give you a URL you can distribute to your users, which will connect users' Lore accounts to yours.
- Ask your users to sign up for Lore using your link. When they do, they'll federate some sharing permissions to you — threads that invoke your skill/plugin will automatically be shared with you.
- You can access users' thread data using our skill, CLI, API, or webhooks.
Pricing: less than "Embedded Integration".
Embedded
Embedded Integration
If you don't want to ask your users to directly sign up for Lore, you can integrate our SDK into your distribution artifact. Our SDK will run a limited config of our CLI in a background process, so it won't interfere with how your code runs.
- Generate an API key from your Lore account.
- Start the Lore SDK at any/all entry points for your code — this is idempotent and you only have to do this once; our SDK will automatically fork off a process and start uploading users' threads in the background.
- You can access users' thread data using our skill, CLI, API, or webhooks.
- Users will have a way to "claim" their own Lore account and see what's been shared with you.
Pricing: more than "No-Code Integration".
API Reference
Example integration code:
import { init } from "@tanagram/lore";
await init({
apiKey: "your-lore-api-key",
backgroundProcessName: "your-app-name",
onlyUploadThreadsMatching: {
// Specify one or the other
usesPlugin: "your-plugin-name",
usesSkills: ["skill-1", "skill-2"],
},
});