S4L
S4L is a desktop plugin for running a Reddit and X reply-drafting workflow from
your own machine.
It watches the conversations your buyers already read, finds threads with real
momentum and fit, drafts contribution-first replies in your voice, and gives you
a review queue before anything goes live. The product is positioned as a
self-serve desktop plugin: subscribe, install, connect your accounts, review the
drafts, and track the results.
What S4L does
Most social tools start after you already know what to post. S4L starts earlier:
it looks for conversations worth entering.
- Finds high-traffic Reddit and X threads with enough context to join well.
- Ranks opportunities by momentum, intent, community norms, and product fit.
- Drafts replies that answer the thread first and mention your product only when
it belongs.
- Keeps project-specific voice, claim language, competitors, sensitive topics,
and hard lines in the drafting context.
- Presents drafts in a review workflow so you can approve, reject, or edit before
posting.
- Tracks views, upvotes, clicks, deletions, and misses so each run learns from
the previous one.
Nothing is posted automatically by default. Posting autopilot stays off until you
explicitly turn it on.
Who it is for
S4L is for founders and small teams who want an AI-assisted social workflow
without handing their accounts to an agency or living inside mention alerts all
day.
You bring the accounts, product context, voice, and judgment. The plugin handles
thread discovery, draft generation, review cards, scheduling, and result memory.
How users install it
The production path is the desktop plugin download from S4L.
- Subscribe at https://s4l.ai/pricing.
- Download the plugin link emailed after checkout.
- Install the plugin in Claude Desktop.
- Start a new Claude chat and send:
Set me up on S4L plugin end to end
The setup flow repairs the local runtime, connects your X browser session,
discovers product and voice context, seeds search topics, schedules draft
generation, and verifies that draft cards appear without posting.
What is in this repo
This repository contains the open-source runtime behind the S4L plugin:
social-autoposter/
|-- mcp/ Desktop plugin / MCP server, panel UI, release bundle
|-- scripts/ Discovery, drafting, stats, telemetry, and queue helpers
|-- skill/ Shell entrypoints used by scheduled jobs
|-- setup/ End-to-end setup skill used by Claude
|-- browser-agent-configs/ Browser automation profile templates
|-- launchd/ macOS LaunchAgent templates
|-- mcp-servers/ Local MCP helpers used by the runtime
|-- config.example.json Example project/account configuration
`-- SKILL.md Legacy social-autoposter agent playbook
The mcp/ package is the plugin users interact with. The rest of the repo is the
pipeline it bundles, installs, and drives.
Architecture
Claude Desktop plugin
-> S4L MCP server
-> local runtime + menu bar review UI
-> scheduled queue worker
-> browser profiles you control
-> S4L API for install-scoped queues, stats, and configuration
Important properties:
- Runs locally on macOS.
- Uses the user's own logged-in browser profiles.
- Stores install state locally and scopes API calls by install identity.
- Keeps secrets such as
.env, config.json, browser profiles, logs, and local
databases out of Git.
- Uses approval-first drafting as the default operating mode.
Develop from source
For normal users, use the plugin download from S4L. These steps are for working
on the repo itself.
Prerequisites:
- macOS
- Node.js 16+
- Python 3.9+
- Claude Desktop or Claude Code for MCP testing
Install dependencies:
npm install
cd mcp
npm install
Build the plugin server and panel:
cd mcp
npm run build
Register this checkout with Claude Desktop and Claude Code for local testing:
cd mcp
node install.mjs
Then fully quit and reopen Claude so MCP servers reload.
Run the test suite:
npm test
Build a local .mcpb artifact without publishing:
bash scripts/release-mcpb.sh --no-bump --no-npm --no-release
That command packs the current pipeline into mcp/dist/pipeline.tgz, builds the
plugin, creates mcp/social-autoposter.mcpb, and runs the release checks without
touching npm or GitHub releases.
Runtime commands
The plugin exposes MCP tools for the user-facing workflow:
project_config configures projects, products, voice, topics, and X auth.
engagement_mode chooses personal-brand and product-promotion lanes.
dashboard opens the review dashboard.
approve_drafts posts only the drafts the user selected.
get_stats reads X/Twitter stats.
pause_s4l pauses or resumes scheduled S4L jobs.
runtime installs, updates, and diagnoses the local runtime.
report_diagnosis sends a support report to the S4L team.
The legacy /social-autoposter skill and npm package remain in the repo because
the plugin bundles and reuses the same pipeline scripts.
Public-repo hygiene
This repo is public. Do not commit local customer data, browser state, generated
media, private automation experiments, .mcpb bundles, .env files, databases,
or logs. The root .gitignore intentionally keeps those out of source control.
If a workflow needs private scratch space, keep it outside the repo or under an
ignored directory.