Store a piece of information in persistent memory. Use this when you learn something important, make a decision, discover a pattern, fix a hard bug, or want to preserve context for future sessions.
输入参数kindtagssourcecontent必填project必填category必填importancesource_refsubcategoryrelated_filesidempotency_key
Search your persistent memory for relevant information. Use this at the start of any task to check what you already know, or when you need context about past decisions, known issues, or architectural patterns. Prefer format="compact" for discovery; use memories action="get" for full originals.
输入参数tagsafterlimitquery必填scopebeforeformatrerankexplainprojectcategorymin_score另有 5 个
Move a specific memory to trash by ID. The memory can be restored from the Neural Interface trash panel or via the restore tool. Use this to clean up outdated, incorrect, or superseded information.
输入参数memory_id必填
Restore a trashed memory by ID. Use this to undo a forget operation.
输入参数memory_id必填
Update or annotate an existing memory. Use this when you discover additional context, when a decision changes, or when you want to adjust importance based on new information.
输入参数tagscontentprojectadd_tagscategorymemory_id必填importancesupersedessubcategoryrelated_filesexpected_revisionrelated_memory_ids
Browse recent memories, get statistics, or fetch one memory in FULL by id. Use action "get" with an id to pull a large/consolidated memory untruncated (list actions truncate content to 150 chars). Use to see what you remember about a project, review recent learnings, or check memory health.
输入参数ididslimitaction必填projectcategoryfeedbackrevisionoperationrelation_idtoken_budgetexpected_revision
Manage memory categories. Actions: create, update, delete, list. Categories persist across sessions.
输入参数namecoloraction必填formatparentnew_nameis_parentdescriptionreassign_toreassign_children_to
Check for stale memories whose related files have changed. Compares stored file checksums against current hashes. Returns compact output (ID + changed files only, no content). IMPORTANT: Always pass "categories" to scope the scan — calling without categories scans ALL memories and may produce output too large to return inline. For large memory sets, call iteratively per category rather than globally. Default limit is 50; increase only when using a narrow category filter.
输入参数limitprojectcategories
Autonomous loop control. Start a repeating task loop, check status, update progress journal, or stop it. The Stop hook drives iteration. Call "update" after each iteration with a brief summary to maintain context across compactions.
输入参数taskaction必填contextsummaryprogresstemplateiterationssession_idmax_minutes
Always-available router for SynaBun's tool groups. When a task needs a SynaBun tool this runtime does not list, call action="get", then action="add" with the group that has it, and continue once the host refreshes its tools. On Codex and Claude Code every SynaBun tool is already reachable on demand, so there it only moves the focus and needs no reload. Do not report a SynaBun capability unavailable before trying this. A change affects only this runtime, never other sessions or the default for new ones.
输入参数action必填groups
Ask the user blocking multiple-choice questions through MCP form elicitation. Use this for SynaBun choices in Codex Default mode. If the result reports supported=false, ask the same numbered choices once in plain text and wait; do not call another question tool.
输入参数questions必填
Run up to 10 known browser steps sequentially on one owned tab. Uses existing guarded tools, stops on the first failure, and returns one final snapshot by default. Never retry the whole batch after a partial failure. Steps run exactly as written: no Jev assistance inside a batch. A batch that navigated may end with one advisory "assessment" of the final page.
输入参数steps必填tabIdsnapshotsessionId
Navigate the browser to a URL (auto-creates a session if needed). By default the response includes an AI snapshot of the new page with [ref=eN] element refs — act on them directly with browser_click/fill/type, no separate snapshot call needed. A "Jev assessment:" line may follow (usable, loading, authentication_required, verification_required, consent_blocker, error, empty): it is advice about the page, never an action. On a sign-in or verification wall, stop and hand over to a human.
输入参数url必填tabIdintentsnapshotsessionIdreturnSnapshot
Go back to the previous page in browser history.
输入参数tabIdsessionId
Go forward to the next page in browser history.
输入参数tabIdsessionId
Reload the current page. Useful after making changes or when content is stale.
输入参数tabIdsessionId
Click an element. Pass ref (e.g. "e12") from browser_snapshot — exact, no guessing. Selector is the fallback (CSS, text="...", :has-text(...), role=...; never :contains()). By default the response includes an AI snapshot diff of what changed, so you usually do NOT need a follow-up browser_snapshot.
输入参数reftabIdnthMatchselectorsnapshottextHintsessionIdreturnSnapshot
Clear an input/textarea and fill it with new text. Pass ref from browser_snapshot (preferred) or a selector. For contenteditable editors prefer browser_type.
输入参数reftabIdvalue必填nthMatchselectortextHintsessionId
Type text (simulates keystrokes; appends). Target by ref from browser_snapshot (preferred), selector, or omit both to type into the focused element. Prefer over browser_fill for contenteditable/rich-text editors.
输入参数refmodetext必填tabIdnthMatchselectortextHintsessionId
Hover over an element (reveals dropdowns, tooltips, hover-triggered content). Pass ref from browser_snapshot (preferred) or a selector.
输入参数reftabIdnthMatchselectortextHintsessionId
Select an option from a <select> dropdown by ref or selector, and option value.
输入参数reftabIdvalue必填nthMatchselectortextHintsessionId
Press a keyboard key or key combination. Supports modifiers like Control+A, Shift+Enter, etc.
输入参数key必填tabIdsessionId
Scroll the page or a scrollable container (by ref or selector). Essential for infinite-scroll feeds — but for harvesting feed data, prefer the browser_extract_* tools with their scrolls param, which scroll+extract+dedupe in one call.
输入参数reftabIddistanceselectorsnapshotdirection必填sessionIdreturnSnapshot
Upload files via a file input element (by ref or selector). For hidden/gated inputs, click the visible upload button first to reveal the input. See browser_cheatsheet for per-platform upload flows.
输入参数reftabIdnthMatchselectortextHintfilePaths必填sessionId
Observe page structure and element refs for click/fill/type. Scope with selector on complex pages. AI mode deduplicates delivered observations and supports snapshot IDs and diffs. Refs target elements in the latest captured scope; refresh after navigation or a stale-ref error.
输入参数diffmodedepthforcetabIdformatintentmaxCharsselectorviewportsessionIdbaselineId
Get the content of the current page. Set format="markdown" for clean markdown with structure preserved — preferred for LLM consumption. Returns up to maxChars (default 20000); pass offset to page through long pages.
输入参数tabIdformatoffsetmaxCharsselectorsessionId
Take a screenshot of the current page (localhost pages included): the viewport as JPEG, downscaled to 1024 px wide, by default. For visual QA pass width/height (breakpoints 375 / 768 / 1440 — emulated for this capture only), fullPage for the whole page, and save or path to write a PNG and get its path. Prefer browser_snapshot to read structure; it is far more token-efficient.
输入参数pathsavetabIdwidthformatheightqualityfullPagemaxWidthsessionId
Read the current tab's console messages and uncaught page errors (the last 200, kept from when SynaBun opened the tab), localhost pages included. Use level "error" to check a page for errors, and clear or since to see only what a reload or an action produced.
输入参数clearlevellimitsincetabIdsessionId
Execute JavaScript in the browser page context and return the result. Useful for reading DOM state, extracting data, or performing actions not covered by other tools.
输入参数tabIdscriptsessionIdexpression
Wait for an element to reach a certain state, a page load state, or a fixed timeout. Useful after navigation or clicks that trigger async content loading. Use loadState="networkidle" after posting on Twitter/X or after navigation to ensure all async requests have settled.
输入参数statetabIdtimeoutselectorloadStatesessionId
Manage browser sessions — list open sessions and your tabs in them, see which tab you work in ("status"), create a new one, or close one (pass your tabId to close only that tab of yours). Use "status" to find your current tab id. When a browser tool's answer starts with "Your tab … was lost; a replacement tab … is open", continue in that tab (no create). Use "create" when your browser session or tab was lost (closed, disconnected, "Session not found", "Tab … not found"): it opens a new tab of your own in the SynaBun browser, starting the browser when it is not running, and in a loop or a dispatched run your next browser calls go to it. Only if create fails too, stop and report it; never switch to another browser. Closing a session other automations still use closes only your own tab in it; the session stays open for them.
输入参数urltabIdaction必填sessionId
Look up stable selectors and flow notes for a social platform (twitter, facebook, tiktok, whatsapp, instagram, linkedin). Call this before automating a platform the first time in a session — then reuse the returned selectors for browser_click / browser_type / browser_fill / browser_scroll / browser_snapshot.
输入参数tabIdactionplatform必填sessionId
Inspect the X/Twitter compose surface in ONE call (read-only). Returns: composerOpen, composerText (read back from [data-testid="tweetTextarea_0"]), charCount, overLimit; quoteCard {present, type:"quote"|"link"|"none", author, handle, text, url} — type "quote" means a real embedded quoted-tweet card rendered (safe to post a quote), "link" means only a plain link-preview card (posting would publish a bare reply — do NOT post; fix the status URL or skip the target), "none" means nothing embedded; submitButton {testid:"tweetButtonInline"|"tweetButton", present, enabled, selector} (tweetButtonInline for inline replies, tweetButton for the compose dialog); isModal (the glitchy centered reply dialog is open — close it and retry inline), composerCount (>1 ⇒ pass nthMatch to disambiguate the two reply textareas), hasStaleDraft (duplicated/garbled leftover text — discard and reopen), warnings[]; and recommendedAction {submit|type|open-composer|fix-quote-url|trim-text|unknown} — the deterministic next step. QUOTE flow: navigate x.com/compose/tweet, browser_type the full status URL, call this probe, post via submitButton.selector ONLY if quoteCard.type==="quote". REPLY flow: click the reply icon, call this probe, if isModal close it and retry inline, type, post via submitButton.selector. After submitting, re-call this probe (composer should have cleared) and confirm with browser_extract_tweets on the author profile /with_replies (a NEW, higher status id = published). On loop tabs a server-side gate ALSO blocks a tweetButton click when a status URL is in the body but quoteCard.type!=="quote" (response carries quoteGuard) — so a quote can never silently misfire into a bare reply. Read-only — never types or clicks. When recommendedAction is "unknown" or warnings[] is non-empty, an additive `judgment` {advisory:true, state, confidence, suggestedControl?, note} may appear: a Jev reading of the ambiguous probe built from booleans and counts only (never the composer text or the quote
输入参数tabIdsessionId
browser_fb_composer_state
Inspect the Facebook posting surface in ONE call (read-only). Returns: modal {open,title,closeSelector,containsComposer} (modal.open is true ONLY for a visible posting dialog — FBs permanent hidden 0x0 Notifications dialog is ignored); trigger {found,text,suggestedSelector} — the Create-post button to CLICK first when no composer dialog is open yet (on a bare feed the probe can only see boxes that already exist, so use this to OPEN the composer; after opening, browser_type with NO selector into the auto-focused editor — selector-targeting the dialog editor is flaky); composers[] (search boxes filtered out) each with scope inline|dialog, inDialog, visible, rect, text, ariaLabel, placeholder, isPersonalProfile, isComment, isPostComposer (a comment box is flagged isComment and is NEVER a post composer — do not type a post into it), suggestedSelector; submitButton {label,scope,matchType,selector,enabled} scoped to the active visible dialog (matchType "label" = matched a publish/approval verb incl. German Senden/Veröffentlichen/Zur Genehmigung senden; "heuristic" = inferred as the dialog footer primary button when the label was untranslated, so verify via submission.state after clicking); submission {state: visible-post|pending-approval|posting-failed|composer-open|unknown, evidence}; and recommendedAction {submit|type|open-composer|done|retry|unknown} — the deterministic next step (submit = composer open with text AND an enabled submit button; use it to FINISH a half-typed post before starting anything new). Locale-tolerant (PT/EN/TR/FR/ES/DE incl. approval-flow groups). Flow: probe; if recommendedAction is "submit", click submitButton.selector and confirm FIRST; else if no composer dialog, click trigger.suggestedSelector; re-probe; type the full post into the auto-focused isPostComposer box with browser_type mode:"insert" (blank lines between paragraphs, link alone on the final line — insertText keeps the paragraphs and the isolated URL without firing Enter, so the typ
输入参数tabIdsessionId
Structured Facebook group directory + per-group posting checklist (SQLite-backed; the single source of truth that replaces the free-text seed-queue). Actions: worklist {currency|region, offerSlug, limit?, freshDays?=14, includePending?=false, reset?} — returns the groups STILL to post to for this offer: joined, promo not forbidden, region/currency match, not pending/cooldown, not already posted for this offer within freshDays; never-posted first, then least-recently-posted, then largest. Re-call it to RESUME (it returns only what is left); a new offerSlug (or reset:true) starts FRESH. mark {url, offerSlug, currency, status, postUrl?, note?} — record ONE group right after posting (durable checklist; call after EACH group, never batch). status posted=visible-post, pending=pending-approval (success; engages a 48h cooldown so the worklist skips it), failed=posting-failed, skipped. import {fromMemoryIds?, fromExtract?} — (re)build the directory from the surviving memories and/or a live browser_extract_fb_groups payload (idempotent). set {url | groups:[…]} with region/lang/currency/country/name/member_count/allows_promo — curation: authoritatively classify one or many groups (currency must be a SUPPORTED deal currency: USD/GBP/EUR/BRL/TRY/CAD/AUD). exclude {url, reason} — mark a group promo-forbidden (permanently dropped from worklists). list/stats {region?} — coverage counts by region, pending/cooldown, last-posted per offer. recategorize {} — one-shot cleanup: re-derive region/lang/currency/country for every group from name + post history and backfill allows_promo from confirmed visible posts (idempotent). Region buckets: UK, US, EU, Brazil, LatAm, Turkey, Australia, Canada, Unknown.
输入参数urllangnamenotelimitresetaction必填groupsreasonregionstatuscountry另有 11 个
BlueSky: who am I? Returns the logged-in account (did, handle, pdsUrl). Use first to confirm you are signed in. A blank assigned tab is safely initialized at bsky.app; nonblank tabs are never navigated implicitly. An expired session token is renewed inside the tool (waiting for bsky.app, then reloading its tab at most once), so "not logged in" means the page really has no session. Pass validate:true to check the token against the server.
输入参数tabIdvalidatesessionId
BlueSky: read your home timeline (following feed) as compact JSON posts (uri, cid, author, text, counts, viewer). Pass maxItems to auto-paginate. Returns the next cursor.
输入参数limittabIdcursormaxItemssessionId
BlueSky: read a user's posts (author feed) as compact JSON. Pass actor (handle or DID), optional filter, and maxItems to auto-paginate.
输入参数actor必填limittabIdcursorfiltermaxItemssessionId
BlueSky: read a post and its thread (parents + replies) as compact JSON. Accepts an AT-URI or a bsky.app post URL. Each post includes uri+cid (needed to reply/like/repost).
输入参数uri必填depthtabIdsessionIdparentHeight
BlueSky: get an actor profile (did, handle, name, bio, follower/following/post counts, and your viewer relationship: following/followedBy/muted/blocking).
输入参数actor必填tabIdsessionId
BlueSky: full-text search posts. Supports sort (top/latest), since/until, author, lang. Pass maxItems to auto-paginate. Returns compact posts + next cursor.
输入参数q必填langsortlimitsincetabIduntilauthorcursormaxItemssessionId
BlueSky: search for users (actors). Returns compact actor cards (did, handle, name, bio, viewer relationship) + next cursor. Pass maxItems to auto-paginate.
输入参数q必填limittabIdcursormaxItemssessionId
BlueSky: list your notifications (likes, reposts, replies, mentions, follows) as compact JSON. Pass markSeen:true to clear the unread badge, maxItems to auto-paginate.
输入参数limittabIdcursormarkSeenmaxItemsprioritysessionId
BlueSky: list an actor's followers or follows as compact actor cards + next cursor. Pass maxItems to auto-paginate.
输入参数actor必填limittabIdwhich必填cursormaxItemssessionId
BlueSky: list likes. mode=post → the actors who liked a given post; mode=actor → the posts an actor has liked. Pass maxItems to auto-paginate.
输入参数urimode必填actorlimittabIdcursormaxItemssessionId
BlueSky: read a custom feed generator (mode=feed) or a list timeline (mode=list) by its AT-URI. Returns compact posts + next cursor. Pass maxItems to auto-paginate.
输入参数uri必填mode必填limittabIdcursormaxItemssessionId
BlueSky: publish a post. Supports plain text with auto-facets (@mentions, links, #hashtags), replies (replyTo), quote-posts (quote), and up to 4 images (by url or local path, each with alt text). A link card (OG preview with thumbnail) is auto-generated for the first URL when the post has no images and no quote. Returns the new post uri+cid. In a scheduled automation SynaBun spaces Bluesky writes (posts, replies, likes, reposts, follows and their undos, DMs) a minute or two apart inside this call: never sleep, start a background shell or a Monitor, or end your turn to wait between writes. When the gap needs longer than one call, the call writes nothing, says so, and the next identical call waits the rest.
输入参数text必填langsquotetabIdimagesreplyTosessionId
BlueSky: act on a post or actor. Post: like/unlike, repost/unrepost, delete (your own). Actor: follow/unfollow, mute/unmute, block/unblock. Undo actions resolve the record key automatically — never pass rkeys. In a scheduled automation SynaBun spaces Bluesky writes (posts, replies, likes, reposts, follows and their undos, DMs) a minute or two apart inside this call: never sleep, start a background shell or a Monitor, or end your turn to wait between writes. When the gap needs longer than one call, the call writes nothing, says so, and the next identical call waits the rest.
输入参数tabIdaction必填target必填sessionId
BlueSky: resolve a handle to its DID (com.atproto.identity.resolveHandle).
输入参数tabIdhandle必填sessionId
BlueSky DMs (chat.bsky.*): list_convos, read messages in a convo, send a message (by convoId or members), or mark_read. Returns compact JSON. In a scheduled automation SynaBun spaces Bluesky writes (posts, replies, likes, reposts, follows and their undos, DMs) a minute or two apart inside this call: never sleep, start a background shell or a Monitor, or end your turn to wait between writes. When the gap needs longer than one call, the call writes nothing, says so, and the next identical call waits the rest.
输入参数textlimittabIdaction必填cursorconvoIdmembersmaxItemssessionId
Open a Google Search Console page (overview, performance, inspect, pages, sitemaps, removals, links, security, settings, etc.). Always call before any gsc_* tool to land on the right report. Pages: overview, insights, performance_search, performance_discover, performance_news, inspect, pages, videos, sitemaps, removals, cwv_mobile, cwv_desktop, https, security, manual_actions, enhancements_breadcrumbs, enhancements_faq, enhancements_sitelinks, enhancements_videos, enhancements_products, enhancements_recipes, enhancements_review, enhancements_events, enhancements_jobposting, enhancements_speakable, enhancements_qa, enhancements_logos, enhancements_sitenames, enhancements_dataset, enhancements_practice, enhancements_math, enhancements_video_indexing, links, achievements, settings, crawl_stats, users, change_address, associations, disavow, shopping, merchant.
输入参数page必填tabIdpropertysessionId
Manage GSC property selection — list registered properties, switch the active one (re-navigates current page), read the active property from the URL, or open the Add Property dialog. [mutating for action=add — adds a new property to the Google account]
输入参数typetabIdaction必填propertysessionId
Run URL Inspection on a URL — opens the inspect tool, fills the URL, polls up to 30s for the result panel, returns structured JSON (pageIndexed, verdict, indexingState, coverage, canonicalUser, canonicalGoogle, lastCrawl, crawlStatus, crawlAllowed, fetchStatus, robotsAllowed, sitemap, referringPage, httpStatus, enhancements, summary, fullText).
输入参数url必填tabIdpropertysessionIdtimeoutMs
Click the "Test live URL" button on the URL Inspection page and poll up to 90s for results. Useful to verify a live page after a fix without waiting for re-indexing. Returns same shape as gsc_inspect_url with `liveTest:true`.
输入参数urltabIdsessionIdtimeoutMs
gsc_inspect_request_indexing
[mutating — affects Google's crawl queue] Submit a URL to Google's indexing queue. Clicks "Request indexing" on the inspection result page (running a live test first if needed). Polls for the success/error modal and returns `{ requested, queued, error }`. Quota: ~10/day per property.
输入参数urltabIdsessionIdtimeoutMs
Open the "View crawled page" panel from the URL Inspection result and switch to the requested view (html / screenshot / http_response / more_info). Use browser_screenshot or browser_snapshot afterwards to capture content.
输入参数view必填tabIdsessionId
Run a Performance report query — sets searchType, dateRange (preset or custom), primary dimension, chip filters, and optional comparison; returns total clicks/impressions/CTR/position plus full table rows as JSON. Auto-scrolls the grid to load up to `limit` rows.
输入参数limittabIdcomparefilterspropertycustomEnddateRangedimensionsessionIdsearchTypecustomStart
Trigger Performance report export menu in the active tab. Format: csv → ZIP download; excel → XLSX; google_sheets → opens a new Sheet. Browser handles the actual download to its default download dir.
输入参数tabIdformat必填sessionId
gsc_performance_chart_screenshot
Capture a screenshot scoped to the Performance chart panel only — useful for visual reports.
输入参数tabIdsessionId
Read the Pages (Coverage/Indexação) report — totals indexed/notIndexed and per-reason buckets with counts and trends. Pass `reason` to drill into a bucket and list URL examples.
输入参数tabIdreasonpropertysessionId
[mutating — starts a Google validation cycle] Open a Pages-report reason bucket and click "Validate fix" so Google re-checks the URLs. Returns confirmation status.
输入参数tabIdreason必填propertysessionId
Read the Video indexing report — same shape as gsc_pages_report but for video pages.
输入参数tabIdpropertysessionId
Manage sitemaps. action=list returns all submitted sitemaps; action=submit adds a sitemap (mutating); action=delete removes one (mutating); action=view_errors opens the per-sitemap detail and returns issues.
输入参数urltabIdaction必填propertysessionId
Manage URL removals. list_* returns existing requests; action=new submits a new removal (mutating). removalType: temporary (6-month hide), outdated_content (refresh Google's cached version), safe_search (report adult content).
输入参数scopetabIdaction必填targetpropertysessionIdremovalType
[mutating] Cancel a pending temporary removal request. URL must match the listed entry exactly.
输入参数url必填tabIdpropertysessionId
Read Core Web Vitals report for mobile or desktop. Returns counts of poor / needs-improvement / good URLs and per-issue URL group examples.
输入参数tabIddevice必填propertysessionId
Read the HTTPS report — counts of HTTPS vs non-HTTPS URLs and reasons for non-HTTPS URLs with examples.
输入参数tabIdpropertysessionId
Read Security Issues. action=list returns active + history. action=request_review clicks "Request review" (mutating, requires fixed issues).
输入参数tabIdactionpropertysessionId
Read Manual Actions. action=list returns penalties (or "No issues detected"). action=reconsideration submits a reconsideration request with `body` (mutating).
输入参数bodytabIdactionpropertysessionId
Read a structured-data Enhancements report. Returns valid / warnings / errors counts and per-issue URL examples. Reports: breadcrumbs, faq, sitelinks, videos, products, recipes, review, events, jobposting, speakable, qa, logos, sitenames, dataset, practice, math, merchant.
输入参数tabIdreport必填propertysessionId
Read a Links report section. top_linked_external / top_linking_sites / top_linking_text / top_linked_internal. Returns full table.
输入参数limittabIdsection必填propertysessionId
Trigger Links report Export menu. Browser handles file download.
输入参数scope必填tabIdpropertysessionId
Read or modify property settings — ownership/verification, users, address. action=get returns the settings page summary; action=set_address/change_address mutate.
输入参数tabIdactionpropertysessionIdnewProperty
Read Crawl Stats — totals (requests, download size, response time) and breakdowns by host status, response code, file type, Googlebot type.
输入参数tabIdpropertysessionId
Manage property users. list returns email + role. add invites a user (mutating). remove revokes (mutating). change_role updates permissions (mutating).
输入参数roleemailtabIdaction必填propertysessionId
Manage Associations (Analytics / Merchant / Ads / Play / YouTube / Actions / Chrome Web Store). list returns existing associations; add/remove mutate.
输入参数tabIdaction必填servicepropertysessionIdidentifier
[mutating for upload/delete — affects how Google trusts links to your site] Manage the Disavow Links file. download exports current; upload replaces (use sparingly).
输入参数tabIdaction必填filePathpropertysessionId
Read Shopping/Merchant Listings report — counts and per-issue example URLs.
输入参数tabIdpropertysessionId
Capture a full-page screenshot of the active GSC tab. Saved via SynaBun image staging.
输入参数tabIdsessionId
Discover FRESH candidate game trailers (already-posted ones are removed automatically via the youtube-videos memory ledger — no manual dedup/recall needed). Searches YouTube for recently published trailers, queries IGDB for games (+ Steam appid and official YouTube trailer ids), and resolves Steam direct mp4 URLs. Returns trimmed candidates: { game, source, igdbId, appid, releaseDate, trailerPublishedAt, trailerTitle, genres, ytTrailerIds, steamMp4Url, summary }. Feed one to youtube_download (prefer steamMp4Url; fall back to a ytTrailerIds value), then pass its game/igdbId/appid/sourceTrailerId back into youtube_upload so it records the ledger.
输入参数limitqueryappidssourcelookbackDaysexcludePosted
Download a trailer file. Prefers steamMp4Url (direct publisher asset, lowest copyright risk); otherwise yt-dlp on ytId/url. Returns { filePath, bytes, source }. Pass filePath to youtube_upload. [requires yt-dlp + ffmpeg on the host for the YouTube fallback path].
输入参数urlytIdappidqualityfilenameuseCookiessteamMp4Url
Open a YouTube Studio section (dashboard, content, analytics, playlists, comments, subtitles, copyright, earn, customization). Auto-creates a browser session on studio.youtube.com using the signed-in Google account. Call before other youtube_* browser tools.
输入参数tabIdsection必填sessionId
Upload a local video file to YouTube Studio, publish it, and record it to the youtube-videos dedup ledger. Opens Create → Upload, sets the file, fills title/description/tags, advances the wizard, sets visibility, clicks Done, then verifies the wizard closed and resolves the new video id. [mutating — publishes to the channel]. Pass game/igdbId/appid/sourceTrailerId so the upload is remembered and never re-posted. Default visibility=private so you can schedule afterwards with youtube_schedule.
输入参数gametagsappidtabIdtitle必填igdbIdsourcefilePath必填sessionIdvisibilitydescriptionmadeForKids另有 1 个
Edit an existing video's metadata on its Studio edit page: title, description, tags, category, made-for-kids. Saves on completion. [mutating]. Use youtube_schedule for visibility/publish-time.
输入参数tagstabIdtitlevideoId必填categorysessionIddescriptionmadeForKids
Upload a custom thumbnail to a video via its Studio edit page (uses the hidden thumbnail file input). Saves on completion. [mutating].
输入参数tabIdvideoId必填filePath必填sessionId
Schedule a video to go public at a future time (or set immediate visibility) via the Studio visibility dialog. Pass publishAt for scheduling. [mutating]. Locale-aware date entry (US + pt-BR); the response echoes the picker read-back as scheduledDisplay — verify it matches your intended slot.
输入参数tabIdvideoId必填publishAtsessionIdvisibility
Manage playlists. action=list enumerates them; action=create makes a new playlist; action=add adds a video to an existing playlist (by name). [mutating for create/add].
输入参数nametabIdaction必填videoIdsessionIdvisibility
Apply an end-screen template to a video (links to a related video/playlist + a subscribe element) via the Studio end-screen editor, then save. [mutating]. End-screen editing is canvas-based and may need a manual touch-up.
输入参数tabIdvideoId必填templatesessionId
Read-only YouTube Analytics (views, watch-time, likes, subscribers, etc.) via the API — needs the YouTube API configured/authorized in Settings → YouTube. Channel-wide or per-video.
输入参数endDatemetricsvideoIdchannelIdstartDate
Read channel info or list recent uploads from Studio (browser). Use action=list to dedupe the autopilot against videos already on the channel.
输入参数limittabIdaction必填sessionId
Discord server overview and listing. Actions: info, channels, members, roles, audit_log.
输入参数limitaction必填guild_idaction_type
Discord channel management. Actions: create, edit, delete, list, permissions. Handles text, voice, categories, forums, stages.
输入参数denynamensfwtypeallowtopicaction必填parentreasontargetbitratechannel另有 4 个
Discord role management. Actions: create, edit, delete, list, assign (role to member), remove (role from member).
输入参数namerolecolorhoistaction必填memberreasonguild_idpositionmentionablepermissions
Discord message operations. Actions: send, edit, delete, pin, unpin, react, bulk_delete, list.
输入参数afterembedemojilimitaction必填beforechannel必填contentguild_idreply_tomessage_idmessage_ids
Discord member moderation. Actions: info, kick, ban, unban, timeout, nickname.
输入参数action必填member必填reasondurationguild_idnicknamedelete_days
Discord server onboarding and setup. Actions: get, set_welcome, set_rules, set_verification, set_onboarding.
输入参数action必填enabledpromptsguild_iddescriptionrules_channelsystem_channeldefault_channelswelcome_channelsverification_level
Discord webhook management. Actions: create, edit, delete, list, execute (send message as webhook).
输入参数nameaction必填embedschannelcontentguild_idusernameavatar_urlwebhook_idwebhook_token
Discord thread management. Actions: create (from message or standalone), archive, unarchive, lock, delete.
输入参数nameaction必填threadchannelprivateguild_idmessage_idauto_archive
Read the whiteboard. Returns viewport truth (usable canvas size, origin offset, whether a browser is connected and in Focus mode), every element with its final box x,y,w,h (text/list sizes are browser-measured; ~ marks server estimates not yet measured), z-order, rotation, resolved arrow endpoints and anchors, then a layout analysis: content bounds, elements overflowing the usable area, overlapping pairs, section containment (with spill-outs), z-order and dangling-anchor notes. Call it before placing or moving elements and after edits to verify. format:'json' returns the same as structured JSON; verbose:true prints full text.
输入参数formatverbose
Add elements. Coordinates: px (default) are absolute canvas pixels and are NOT offset — start at the origin reported by whiteboard_read (values are clamped into the usable area). pct = 0-100 of the usable area (offsets applied; also converts arrow/pen points). parent:<sectionId> makes x/y relative to that section and clamps inside it. layout row/column/grid/center overrides x/y using real sizes. Sizes: text/list auto-size (do not pass width/height); shapes default 160x100 (rect, pill, circle, triangle, drawn-circle); sections default per sectionType; images need width/height. Arrows: 2+ points plus optional startAnchor/endAnchor (unknown IDs dropped with a warning; anchored ends snap to the target edge). Returns the FINAL geometry per element after defaults/pct/layout/clamping with the adjustments made, then overflow/overlap warnings for the new elements. Guidance: keep content within ~70-80% of the usable width, centered, fit vertically, ~20px margins.
输入参数layoutelements必填coordMode
Update one element ({id, updates}) or many atomically ({items:[{id, updates}]}: one save, one render, one undo step in the browser). Only listed fields change; changing content/items/fontSize re-estimates a text/list size until the browser re-measures it. coordMode pct and parent:<sectionId> work as in whiteboard_add. Positions are clamped into the usable area; unknown anchor IDs are dropped with a warning. Per-item results include the final geometry; a missing ID fails only that item.
输入参数iditemsparentupdatescoordMode
Remove one element ({id}) or several atomically ({ids}). Arrows anchored to a removed element are detached and their endpoint moved to its centre (reported as cascade updates). Omit both to clear the whole board (undoable in the browser with Ctrl+Z).
输入参数idids
Capture the live whiteboard from the primary connected browser window as a JPEG, preceded by a text block with the coordinate mapping (canvas size, image scale: image px ÷ scale = canvas px, usable viewport origin, element count). Fails with a clear message when no browser is connected. Use whiteboard_read for exact numbers; use this to judge visual overlap, legibility and how the board actually looks.
输入参数crop
List all currently open memory cards in the Neural Interface. Returns each card's memory UUID, position, size, compact/pin state, content preview, and the current viewport dimensions (width x height). Use this before placing cards to know the available screen size.
无需输入参数。
Open a memory as a floating card in the Neural Interface. Use card_list first to see viewport size.
Coordinate modes (coordMode): "px" (default) = absolute pixels. "pct" = percentage of viewport (0-100), e.g. left:50 top:50 = center of screen.
If the card is already open, it is brought to the front. Omit left/top for auto-cascade positioning.
输入参数topleftcompactmemoryId必填coordMode
Close a memory card by its UUID, or close all open cards if no memoryId is provided. Use card_list first to see which cards are open.
输入参数memoryId
Update an open memory card's position, size, compact/expand state, or pin state. Set coordMode to "pct" to use percentage-based positioning. Only specified fields are changed; others remain untouched. Changes appear in real-time.
输入参数topleftwidthheightpinnedcompactmemoryId必填coordMode
Take a visual screenshot of the Neural Interface showing all open memory cards in their current positions. Returns a JPEG image. Requires the Neural Interface to be open in a browser.
无需输入参数。
Git repository operations. Actions: "status" shows branch and changed files, "diff" returns raw diff content for analysis, "commit" stages and commits with a message, "log" shows recent commit history, "branches" lists all branches. Use "diff" to analyze changes before generating commit messages.
输入参数path必填countfilesaction必填messagemax_lines
List, clear, or remove images from SynaBun's image store (data/images/). Images arrive when users paste them in the Neural Interface chat. Use "list" to see available images with their full absolute paths — these paths can be passed to browser_upload, Read, or any tool that accepts file paths. Use "clear" to delete all attachment-type images (auto-clear after use). Use "remove" to delete a specific file.
输入参数typeaction必填filename
A project's SynaBun Style Guide: brand, colors (light/dark), type, spacing, motion, components and rules, as a summary, the full DESIGN.md or tokens (CSS variables, Tailwind theme, W3C design tokens). Call it BEFORE UI, design, copy, marketing, image or video work and use its tokens instead of inventing values. Pass projectPath (your working directory). To change the guide, use action "propose": the user reviews proposals; never edit DESIGN.md or the token files by hand.
输入参数bgfgsizemodelrunIdthemeactionformatreasonstatuschangesformats另有 4 个
Manage MoreLogin (anti-detect, multi-account browser) profiles. Actions: "status" (is MoreLogin installed/running, which profile is the default AI browser), "list" (profiles), "create" (new profile), "start"/"stop" (launch/close a profile), "use_default" (set a profile as the default AI browser — afterwards all browser_* tools automatically drive that MoreLogin profile). Requires the MoreLogin desktop app to be running with its local API enabled.
输入参数nameenvIdaction必填
Play Tic Tac Toe on the whiteboard. Actions: "start" sets up the board (piece defaults to X), "move" places the current turn's piece in cell 1-9, "state" shows the current board, "end" closes the game. The board renders visually on the whiteboard. X always goes first. Returns ASCII board + game status after each action.
输入参数cellpieceaction必填