Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
터미널에서 고급 퍼포먼스 마케터 역할, AI 감사·크리에이티브 피로 감지·9개 광고 플랫폼 캠페인 실행, OAuth 보안
A senior performance marketer in your terminal. AI-powered audits, creative-fatigue detection, and campaign, launches across 9 ad platforms — via OAuth-secured MCP. For Claude Code & Codex CLI.
플러그인JavaScript · PythonGitHub @gomarble-ai직접 설치운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
설치형 프로젝트는 배포 도메인 없이도 확인할 수 있습니다. 개인 저장소는 GitHub 로그인으로, 조직 저장소는 위의 저장소 확인 파일로 직접 확인해 주세요.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The AI agent for paid media teams, inside ChatGPT, Codex and Claude. Built by GoMarble . GoMarble connects your AI assistant to your ad accounts, analytics and store data. It explains what changed and why, and prepares the next move for your approval. Ask about any account in plain language. GoMarble pulls the data across channels, finds the root cause, and recommends what to do. When you say yes, it makes the change. You can also hand the routine work to agents that watch your accounts on a schedule and report back by email or Slack. [README 설치·사용 부분 발췌] InstallREADME 전문 보기 ↗
GoMarble connects your AI assistant to your ad accounts, analytics and store data. It explains what changed and why, and prepares the next move for your approval.
Ask about any account in plain language. GoMarble pulls the data across channels, finds the root cause, and recommends what to do. When you say yes, it makes the change. You can also hand the routine work to agents that watch your accounts on a schedule and report back by email or Slack.
| Job | Ask | Skill |
|---|---|---|
| Diagnose performance | "Why did ROAS drop on my Meta account last week? Find the root cause and what to do next." | diagnose-performance |
| Analyze creative | "Break down my top 10 Meta ads by spend. Which hooks, formats and angles are winning, and which are fatiguing?" | analyse-creative |
| Research competitors | "Find the longest-running ads from my top 3 competitors and summarize the angles they keep testing." | research-competitors |
| Brief new creative | "Write a creative brief for next week's tests using our winning hooks and the gaps in competitor ads." | brief-creative |
| Cut wasted spend | "Find wasted spend across my Google Search campaigns and propose the negatives." | clean-wasted-spend |
| Shift budget | "Where can we move $12k without pushing CAC above target? Show me the changes before applying." | shift-budget |
| Launch campaigns | "Launch a Meta sales campaign for our new bundle with these 3 creatives. Keep the ads paused until I review." | launch-campaigns |
| Make any change | "Pause these ad sets and lower the tCPA on Brand Search to $40." | manage-campaigns |
| Report | "Build my Monday performance review across Meta, Google and Shopify." | build-reports |
| Automate | "Every weekday at 9am, check all my accounts for spend spikes and ROAS drops, and email me only when something needs attention." | automate-with-agents |
The use-case skills follow gomarble.ai/use-cases. Skills load automatically from what you ask; you don't need to name them.
| Channel | What your assistant can do through GoMarble |
|---|---|
| Meta Ads | Analyze, diagnose, creative analysis, audits. Launch Sales campaigns, edit, clone, pause and change budgets, with approval. |
| Google Ads | Analyze with GAQL, search terms, Shopping, PMax, keyword research. Launch Search and Performance Max, edit, negatives, bid modifiers, experiments, with approval. |
| TikTok Ads | Reports, audience and creative breakdowns, review status. For accounts in GoMarble's TikTok beta, launches and edits are prepared and validated through GoMarble, then applied in TikTok Ads Manager. |
| LinkedIn Ads, Microsoft Ads | Performance, campaigns, keywords, targeting. Read-only: changes come back as instructions. |
| GA4, Shopify | The business source of truth for sessions, conversions, orders and revenue. |
| Klaviyo | Campaign and flow performance, lists and segments. |
| Search Console | Organic queries, pages, indexing and sitemaps. |
| Facebook Pages, Instagram | Organic content performance, comments, tagged UGC. |
| impact.com | Affiliate partners, commissions, conversions and invoices. |
| Snowflake, Google Drive | Your warehouse (read-only queries), and docs, sheets and media in Drive. |
| Ad library | Competitor ads by brand, domain, keyword or niche. |
GoMarble supports 80+ integrations. Your assistant can use the GoMarble tools for the ones you connect.
Your assistant works inside your GoMarble team's access rules, so agencies and in-house teams can give everyone access without giving everyone every account.
Admins manage roles and access at Settings → Team management, and connections at Settings → Integrations.
60 skills. In Claude Code, run any of them by name as /gomarble:<skill>.
| Skill | What it does |
|---|---|
get-started | Connect accounts, find what's connected, use GoMarble's memory, and how approvals work. |
accounts-and-connections | See, add, remove or reconnect ad accounts and data sources, connect other tools and Slack, and switch read-only / read & write. |
access-and-permissions | Team roles, View vs Act account access, your AI app's permissions, and what to do when a tool is denied. |
| Skill | What it does |
|---|---|
diagnose-performance | Traces a performance move to its driver across channels, then proposes the smallest fix. |
analyse-creative | Ranks creative by hook, hold, CTR, CPA and ROAS, reads the creative itself, and flags fatigue. |
research-competitors | Finds competitors, pulls their ads from the ad library, groups angles, and flags what's new. |
brief-creative | Turns winning patterns, customer language and market gaps into a production-ready brief. |
launch-campaigns | Builds Meta, Google Search, PMax and TikTok (beta) launches for review before anything goes live. |
shift-budget | Finds headroom from pacing, efficiency and targets, and proposes exact budget moves. |
clean-wasted-spend | Quantifies waste in search terms, placements, audiences and creative, and proposes the clean-up. |
manage-campaigns | Any other change: status, bids, targeting, copy, assets, modifiers, experiments. |
build-reports | Cross-channel reports with drivers, decisions and a 7-day plan, saved to Drive or scheduled. |
automate-with-agents | Creates and manages GoMarble agents that run on a schedule and deliver by email or Slack. |
tiktok-ads, linkedin-ads, microsoft-ads, email-marketing (Klaviyo), organic-social (Facebook Pages and Instagram), affiliate-marketing (impact.com), search-console-master-skill, ga4-source-of-truth, shopify-order-discipline.
The same methodology GoMarble's own agent uses, synced from the GoMarble server:
meta-performance-analysis, meta-creative-analysis, meta-depth-of-analysis, meta-guardrails, meta-tool-fundamentals, meta-agent-operations, meta-custom-event-interpretation, meta-create-master-skillgoogle-ads-search-analysis, google-ads-search-execution, google-ads-shopping, google-ads-pmax-evaluation, google-ads-pmax-scaling, google-ads-keywordplanner, google-ads-depth-of-analysis, google-ads-guardrails, google-ads-tool-fundamentals, google-ads-create-master-skilltiktok-create-master-skillwinning-ads-orchestrator runs the full pipeline from market research to a shoot-ready brief, through competitor-ad-intelligence, creative-research, own-creative-diagnosis, creative-psychology-hooks, winning-pattern-synthesis and ad-brief-generator. winning-ads-engine holds the whole method in one reference.
gomarble-skills-ecommerce-brands, gomarble-skills-saas-companies, gomarble-skills-creative-strategists.
Read-only workflows. Each produces analysis and recommendations and never changes the account. In Claude Code, run them as /gomarble:<skill> <account>; elsewhere, ask for them by name.
| Skill | What it does |
|---|---|
meta-daily-optimization | Yesterday vs 3-day vs 7-day, change-log gate, and root-cause actions. |
meta-ads-audit | 30-day audit: pixel and CAPI, fatigue, audience split, ROAS outliers, budget allocation. |
meta-creative-fatigue-detection | Per-ad fatigue scoring with refresh recommendations. |
meta-creative-strategy | Winners and losers, patterns, test plan, and a 12-creative production spec. |
google-search-audit | Daily Search briefing with brand vs non-brand, and CUT / FIX / SCALE. |
google-pmax-pulse | 3-day vs 3-day PMax anomaly check, disciplined against overcorrection. |
google-search-term-audit | Forensic search term waste audit with suggested negatives. |
google-impression-share | Lost impression share: budget vs rank, gated on profitability. |
A GoMarble account is required. MCP access is included in every plan.
See gomarble.ai/pricing for current plans, trials and limits.
Install GoMarble from the ChatGPT plugin directory once it's listed, then sign in when prompted.
/plugin marketplace add https://github.com/gomarble-ai/marketing-agent.git
/plugin install gomarble@gomarble
/reload-plugins
Using the full HTTPS URL avoids SSH-key errors on machines where git rewrites GitHub URLs to SSH.
Install GoMarble from the plugin directory once it's listed. You can also upload the plugin from your organization's plugin settings.
codex plugin marketplace add https://github.com/gomarble-ai/marketing-agent.git
codex plugin add gomarble@gomarble
codex mcp login gomarble
You can also install it from the Plugins panel in Codex.
npx marketing-agent
This runs the official install commands above on macOS, Linux and Windows, and removes an earlier marketing-agent install if there is one.
marketing-agentThe plugin was renamed from marketing-agent to gomarble. If you installed it before, remove the old one first:
/plugin uninstall marketing-agent@marketing-agent
/plugin marketplace remove marketing-agent
Then install as above. npx marketing-agent does this for you.
/mcp, pick the GoMarble server, and choose Authenticate. In Codex, run codex mcp login gomarble.Already added GoMarble as a custom connector? If you set it up by hand earlier (for example at https://apps.gomarble.ai/mcp-api/sse), you'll see two GoMarble connectors after installing the plugin. Remove the old custom one in your connector settings and keep the plugin's.
scripts/ folder holds maintainer tools that the plugin never runs.https://apps.gomarble.ai/mcp-api/mcp, over HTTPS. You sign in with OAuth. The plugin stores no credentials.GoMarble's privacy policy: gomarble.ai/privacy. Security: gomarble.ai/security.
marketing-agent/
├── .claude-plugin/
│ ├── plugin.json # Claude manifest (plugin name: gomarble)
│ └── marketplace.json # marketplace for /plugin marketplace add
├── .codex-plugin/
│ └── plugin.json # Codex manifest
├── .mcp.json # GoMarble connector (mcpServers, read by Claude and Codex)
├── skills/ # 60 skills, read by Claude, ChatGPT and Codex
├── scripts/ # maintainer tools: skill sync and coverage check
├── installer/install.mjs # the npx installer
└── README.md
GoMarble playbooks come from the server. The Meta, Google Ads, TikTok, GA4, Shopify, Search Console and creative-research skills are synced from GoMarble's server-side skill catalog, the same source the connector's load_skill tool serves. Don't edit them here; change them on the server, then re-sync:
git -C ../mcp-server-sse show origin/main:ads-mcp-server/src/lib/langfuse/langfuse.json > /tmp/langfuse.json
node scripts/sync-server-skills.mjs /tmp/langfuse.json
node scripts/check-coverage.mjs
scripts/skill-map.json maps each server skill to a plugin skill. The sync adds frontmatter, rewrites server paths to plugin skill names, applies scripts/skill-rewrites.json, and adds a short note wherever the server text still assumes GoMarble's own app.
Rewrites keep synced skills usable through the connector. scripts/skill-rewrites.json holds exact find → replace edits for server text that only works inside GoMarble's app, such as its user_input form, in-app-only tools and retired tools. Every find must still match, or the sync fails, so a server wording change can't silently bring back a call to a tool the connector doesn't expose. The better long-term fix is the same wording change in the server skill.
CI (.github/workflows/plugin-ci.yml) runs scripts/validate_plugin.py (OpenAI listing rules and Agent Skills / Codex skill rules), the coverage check, claude plugin validate --strict, the OpenAI ZIP build, an npm pack dry run and a check that the listing links are live.
Every connector tool has a skill. scripts/check-coverage.mjs fails if a tool in scripts/connector-tools.json isn't covered by a skill, or a skill names a tool the connector doesn't expose. Update that list when the connector's tools change.
Other skills (use cases, channels, creative strategy, business frameworks) live here. Keep each SKILL.md under about 3,000 words and put detail in references/.
Raise version in .claude-plugin/plugin.json, .codex-plugin/plugin.json and package.json with every release.
Skills stay provider-neutral. They run in Claude, ChatGPT and Codex, so write "the model" rather than a product name, and keep product names only for product-specific steps such as how to sign in.
OpenAI plugin directory. The OpenAI listing, review test cases and publication settings live in .codex-plugin/plugin.json. Build the upload with npm run pack:openai, which writes dist/gomarble-openai-<version>.zip, and upload it at platform.openai.com/plugins with With MCP.