Reddit Composer Profile (hardened). Authored by reddit_sandbox.py. License: cc-by.
Daily Driver Thread — use responsibly
These Threads automate routine activity on your own account: posting, replying, commenting, DMs. Done at human cadence — a few times a day — this is exactly what you already do by hand. The Thread just hands the busywork off.
It is not a bot farm, scraper, fake-engagement tool, or multi-account network. WebLoom will not help you build any of those.
If you push it — 50 posts an hour, follow/unfollow loops, content that looks identical every time — the platform will flag your account, restrict it, or ban it. That risk is yours. We tell you up-front because every platform has tripwires and we will not pretend they don't exist. Full policy →
Each row is a real action successfully driven through WebLoom on this site — recorded automatically when an author ran the engine. Strategy tells the engine which click path works here.
New comment composer is Lexical-based contenteditable (shreddit-composer bundle).
Use `lexical_set_text` Strategy A — Reddit exposes `__lexicalEditor` on the contenteditable root. Atomic state replacement via setEditorState bypasses DOM/paste/auto-linkifier issues.
Submit button selector MUST be scoped to the composer ancestor (not document-wide). A Reddit post page has 22+ `button[type=submit]` elements (upvote/sort/user actions/etc).
Composer mount is JIT — click the placeholder, poll for contenteditable up to 5s.
AutoMod can silently remove comments after submit. Always re-verify the comment appears for an anonymous viewer before declaring success.
Comment composer does NOT have a markdown-toggle in current UI; POST composer does.
This is what installs to ~/.webloom/threads/. No magic. Just JSON.
{
"domain": "reddit.com",
"name": "Reddit Composer Profile (hardened)",
"version": "0.2.0",
"author": "reddit_sandbox.py",
"license": "cc-by",
"tier": "starter",
"framework": "vanilla",
"frameworks_detected": [],
"anti_bot_verdict": "normal",
"default_strategy": "cdp",
"notes": [
"New comment composer is Lexical-based contenteditable (shreddit-composer bundle).",
"Use `lexical_set_text` Strategy A — Reddit exposes `__lexicalEditor` on the contenteditable root. Atomic state replacement via setEditorState bypasses DOM/paste/auto-linkifier issues.",
"Submit button selector MUST be scoped to the composer ancestor (not document-wide). A Reddit post page has 22+ `button[type=submit]` elements (upvote/sort/user actions/etc).",
"Composer mount is JIT — click the placeholder, poll for contenteditable up to 5s.",
"AutoMod can silently remove comments after submit. Always re-verify the comment appears for an anonymous viewer before declaring success.",
"Comment composer does NOT have a markdown-toggle in current UI; POST composer does."
],
"selectors": {
"composer_trigger_primary": "shreddit-async-loader[bundlename=\"comment_composer\"]",
"composer_trigger_alt": "[data-testid=\"comment-submission-form-richtext\"]",
"contenteditable_aria": "[contenteditable=true][aria-label*=\"comment\" i]",
"contenteditable_lexical": "[contenteditable=true][data-lexical-editor=true]",
"submit_button_scoping_ancestor": "form, shreddit-composer, shreddit-async-loader[bundlename=\"comment_composer\"]",
"submit_button_text_keys": "comment | comentar | post | publicar | submit | reply | responder"
},
"quirks": {
"lexical_editor_exposed_as": "__lexicalEditor on root contenteditable",
"submit_button_scope_required": "Yes — 22+ button[type=submit] on a logged-in post page",
"automod_silent_removal": "Common — verify comment is visible from logged-out view post-submit",
"markdown_toggle_composer_only": "Comment composer has no markdown toggle; rich text only"
},
"actions": {
"submit_comment": {
"type": "scoped_button_click",
"scope_selector": "shreddit-async-loader[bundlename=\"comment_composer\"], shreddit-composer",
"match_by": "text",
"text_keys": [
"comment",
"comentar",
"post",
"publicar",
"reply",
"responder"
]
}
},
"lexical_compatible": true,
"validated_at": 1779099334,
"validated_by": "reddit_sandbox.py against live tab",
"sample_post_url": "https://www.reddit.com/r/n8n/comments/1tgbomu/looking_for_tools_to_enrich_3800_licensed/",
"proven_actions": [
{
"descriptor": "Nombre para mostrar",
"strategy": "vision",
"successes": 2,
"last_at": 1779094734
},
{
"descriptor": "Guardar",
"strategy": "cdp",
"successes": 1,
"last_at": 1779094658
},
{
"descriptor": "Acerca de la descripción",
"strategy": "vision",
"successes": 1,
"last_at": 1779094900
},
{
"descriptor": "Únete a la conversación",
"strategy": "vision",
"successes": 1,
"last_at": 1779098100
}
]
}