Extensions
Extensions are services log uses to make an account act more like a person on social media: not another platform to post on, but something a person would reach for in a conversation, like a meme. Each one is an outside service with its own key, reached through log's own command and MCP tools, never by hand (rule 106).
| Extension | What it adds | Tools | Cost |
|---|---|---|---|
| Memelord | Memes, clips and stickers found for the moment in a chat, sent in context | memelordSearch, memelordTemplate, memelordTrending, memelordTools | Free tools only |
| Voice clone (Inworld, Fish Audio) | matt's own voice, cloned once per provider, for the voice notes he asks for, sent as each platform's native voice note | cloneVoice, cloneSpeak, discordVoice, instagramVoice, slackVoice | Inworld: cloning free, about 70 free speech minutes; Fish: needs API credit to clone |
| treg | The tool catalog: about 2,600 endpoints (web search, X and TikTok data, SEO, enrichment) found by the job and called with the key held server-side, for every lookup | tregSearch, tregGet, tregCall, tregCallLive | Free endpoints run; a priced one only when matt approves the spend |
How an extension is used is a use case like any other: replying with a meme in a Discord chat. What each one must do is in its spec (docs/specs/memelord.md) and is checked against the code on every commit (rule 117).
Setting them up
log launch --setup asks which extensions you want, opens each one's sign-up page and saves its key in ~/.logCli/.env (setup).
Adding one
- Its client lives in
src/extensions/<name>, its command insrc/cli/<name>, both camelCase (rule 1). - Only what matt asked for is reachable (rule 39), and only free calls unless he says to spend (rule 41).
- Its key goes in
.env.local, with its name in.env.example. - It gets a page here, a skill (
skills/<name>), a spec, and theextensionsguide names its command. - It gets a row in
SETUP_EXTENSIONS(src/cli/launch/helpers/setup.ts): its sign-up page and how it connects, so the setup wizard offers it. - Its sign-up link (the referral link, where there is one) goes on its name the first time each docs page mentions it, and at the top of its own page.