From viralman
Launches local viralman dashboard at localhost:8765 for AI-generating platform-specific drafts (Twitter tweets, Reddit posts, Gitmail emails) from project info and free-text prompts, with tab switching, multi-language support, and unified OAuth login.
npx claudepluginhub art8engine/viralman --plugin viralmanThis skill uses the workspace's default tool permissions.
The dashboard is **three separate pages** sharing one project state. Each
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
The dashboard is three separate pages sharing one project state. Each page runs the same flow: enter project info → say what to write → AI generates a platform-tuned draft → tweak targets → send.
This skill exists so phrases like "open the dashboard", "viralman 띄워줘", "run viralman" route to a deterministic flow.
Auto-trigger on:
/dashboardviralman in chat that clearly means "start the app", not the project한국어:
English:
中文:
日本語:
If the user typed /dashboard, follow commands/dashboard.md for argument
parsing.
| URL | Platform | What you can do |
|---|---|---|
/twitter | X (Twitter) | tweet body + char count + sniffer flags + hashtag chips, post via API or compose-URL fallback |
/reddit | title + body, subreddit chips, scan recent threads to comment on, post via PRAW | |
/gitmail | Email outreach | email template (uses {{login}} and {{starred_repo}}), recipient slider, live progress + per-recipient preview |
Every page has the same top blocks:
localStorage so it carries across page tabs./api/generate, returns a platform-specific draft.Header (shared across all 3 pages):
localStorage,
auto-detects navigator.language on first visit.Before launching, verify viralman is installed and importable. Sequence:
viralman binary using the priority order in commands/dashboard.md step 1./viralman-setup instead. Its Step 0 detects the missing environment and runs the bootstrap (clone, venv, flask, shim) before asking about credentials. Idempotent.--help works without a ModuleNotFoundError. If flask is missing, run <venv>/bin/pip install flask and retry once. After that retry fails, surface the error.Why two skills:
/dashboard is "make the UI run for me, now". It must not become a heavy installer./viralman-setup is the single entry point for "get viralman working" — its Step 0 owns clone, venv, and shim; later steps cover credentials.viralman # if installed
./bin/viralman # from repo root
./scripts/dashboard.py # equivalent
Default flags: --host 127.0.0.1 --port 8765, browser auto-opens to
/twitter. Pass --no-browser if no auto-open is wanted.
If Flask is missing, the entry script prints a precise install hint — relay it verbatim. Do NOT pip-install on the user's behalf without consent.
viralman dashboard → http://localhost:8765
twitter: http://localhost:8765/twitter
reddit: http://localhost:8765/reddit
gitmail: http://localhost:8765/gitmail
Ctrl-C to stop.
Say the language switcher and Connect dropdown are both top-right.
The user drives from the browser. Don't shadow-post on their behalf, and don't call the post-API endpoints from inside chat — those are gated behind the dashboard's explicit "post" / "send" buttons for a reason.
viralman --port 8766 (or whatever)./viralman-login-{reddit,twitter,linkedin,gitmail} skills.CLIENT_ID /
CLIENT_SECRET aren't saved. Each Connect dropdown row's "tokens" modal
lists exactly what to register./viralman-login-gitmail, or have
the user save one via the Gitmail row in the Connect dropdown.localStorage was cleared, or a
different browser/profile is in use. Just retype.~/.viralman/.env. Only viralman save-creds /
/ viralman post-* / viralman gitmail do.--debug unless the user asked —
the reloader can race with the OAuth state in session.