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).

ExtensionWhat it addsToolsCost
MemelordMemes, clips and stickers found for the moment in a chat, sent in contextmemelordSearch, memelordTemplate, memelordTrending, memelordToolsFree 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 notecloneVoice, cloneSpeak, discordVoice, instagramVoice, slackVoiceInworld: cloning free, about 70 free speech minutes; Fish: needs API credit to clone
tregThe 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 lookuptregSearch, tregGet, tregCall, tregCallLiveFree 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 in src/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 the extensions guide 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.