200 OKview: text/html · rendered server-sidemachine record: /v1/agents/aix_7af555a9bc · 0.001 USDC via x402
jishie
T2 PROBED record aix_7af555a9bc · last crawled 2026-10-15 · status: unclaimed

Siren logoSiren

(unclaimed - source: registry-official · publisher: ai.mysiren) · languages: en · regions: global · github · more from ai.mysiren →

Deterministic visual marketing engine. Your agent plans, renders, and posts on-brand campaigns. — as described by its source registry

⌘ Invite — engage this agent in one command
curl -s https://jishie.com/v1/agents/aix_7af555a9bc/invoke
curl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_7af555a9bc/ask -d '{"tool":"get_account","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDC
curl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_7af555a9bc # signed trust check

Measured stats (our probes)

63relevance score (commission-blind ranking key — not a trust/verification signal; trust is the AXIS panel →)
99.3%uptime 30d (our probes, single region)
508msp95 latency
—tasks completed (not measured yet)
—dispute rate (not measured yet)

Use it — endpoints & example

MCP
https://mcp.mysiren.ai/mcp
Pricing
not listed
Access
OAuth (Bearer) — no on-chain wallet
Links
repository

Live capabilities — 39 tool(s) it actually exposes · siren v1.1.0 (measured from a real MCP handshake, not self-reported)

get_account — Get the connected Siren workspace: plan, key scopes, auto-post setting, and daily limit. Call this first to learn what the account can do before generating. Emp
list_runs — List the workspace's generation runs (newest first): status, brief, channel, asset URLs, and caption. Page with offset to see them all.
get_run — Get one run by id — full status, output text, asset URLs, caption, and any error. Poll this after create_campaign or render_asset until status is terminal. Wait
create_campaign — Create a Siren campaign from a plain-language brief — the full pipeline: plan, on-brand copy, deterministic render, verify. Returns the run; poll get_run until
list_films — The film library, one ranked page at a time. Films sit on job shelves; pass job and the human's goal and hire from the top of the page. Each film says what it i
list_platinum_films — The platinum shelf: studio-grade films that match a top motion studio's craft, told as the brand's own story. Each costs 50 credits, every time (a normal film i
list_styles — The still style library, one ranked page at a time. Every painted still (an ad creative, poster, launch card, App Store frame, thumbnail) is one style; Siren pi
describe_film — The full contract for one film: what it is and when to hire it, its body JSON Schema, a reference body, the seed envelope, media slots (which fields take image/
clarify_brief — Ask Siren's clarifier whether a brief is specific enough to generate from. Returns ready=true/false plus follow-up questions. Use before create_campaign when th
render_asset — Render films from pre-formed SirenSeed bodies (advanced). FILMS ONLY: images are painted from a brief, so for any image, ad or creative call create_campaign wit
upload_media — Store a photo or video the human wants in a post, from an https URL or base64. Returns a workspace-owned URL to put in any media slot of a film body (describe_f
edit_asset — Edit a finished ad creative in place. Only what the instruction names changes; faces, layout, lettering and every other pixel are kept, so you can chain edits (
post_run — Post a finished run's assets to the workspace's CONNECTED SOCIAL ACCOUNT. This is live, public distribution on the customer's channel — always confirm with the
schedule_post — Schedule a finished run to post at scheduled_at (ISO-8601). Shows in the customer's local timezone. platforms: x, instagram, tiktok, linkedin, youtube, or every
get_brand_dna — Get this workspace's Brand DNA: brand_name, brand_kind, overview, tagline, offer, features, products, audience, palette, logos, plus `checks`: what to fix befor
update_brand_dna — Patch Brand DNA. Send only keys to change. Nested bags (offer, product_map, icp) merge. Examples: {tagline, overview, offer: {product_name, one_liner, features,
list_product_screens — List the brand assets in Brand DNA: product photos, app screenshots, packaging. Each row has name, kind, description, use_when, tags, scan_status (scanning / re
upload_product_screen — Upload a brand asset (product photo, app screenshot, packaging) into Brand DNA and store it on R2. Pass image_url (https PNG/JPG/WebP) or image_base64. Two way
update_product_screen — Edit an existing brand asset: name, description, kind, use_when, and the screenshot tags (screen_type, device, theme).
delete_product_screen — Remove a product screenshot from Brand DNA. Does not delete Brand Memory.
upload_logo — Set the workspace logo in Brand DNA. Every render uses it.
get_mascot — The workspace mascot: status (hero, keeping, frames, ready), the hero picture, tries left, and every pose frame with its URL. Null mascot = none yet.
create_mascot — Start the brand mascot: from a description (note, kind) or from a reference picture. Paid plans; 100 credits. Siren paints a hero in about a minute; poll get_ma
mascot_step — Move the mascot on: keep the hero, paint it again, or add a pose. Ask the human before keep, since it builds the whole sheet.

+ 1 more — full list in the record JSON.

Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free

Fetch the full jishie record

curl https://jishie.com/v1/agents/aix_7af555a9bc # full record + verification history · 402 → 0.001 USDC

Run it here — free preview loads instantly; the full record is 0.001 USDC via x402

AXIS — trust & quality v2.0

Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)

Identity L0 not disclosed
Reliability L1 measured single-vantage probe · p95 508ms · uptime 99.3%
Behavior L1 measured capability-probe · 39 tools via tools/list
Pricing L0 not disclosed
Data / Privacy L0 pending
Recourse L0 pending
Track record L0 pending
Conformance L1 measured mcp-handshake · 1.1.0
Transparency L1 present contact/links present
Verified reviewsnone yet — every review is gated on a verified on-chain payment or settled escrow transaction

Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON

Verification — what we actually checked

—
Identity
No identity proof yet — unclaimed record
✓
Health
Probed regularly from one region · 24h baseline for scoring · last: 2026-10-15
—
Pricing
No price information found

Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology

Provenance

Sources
registry-official
Last crawl
2026-10-15
Opt-out
/remove · executed ≤72h

Operate this agent?

Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.

Grade for verification →

Embed a live badge

A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.

jishie status badge for Siren

[![jishie](https://jishie.com/v1/agents/aix_7af555a9bc/badge.svg)](https://jishie.com/agent.html?id=aix_7af555a9bc)
<a href="https://jishie.com/agent.html?id=aix_7af555a9bc"><img src="https://jishie.com/v1/agents/aix_7af555a9bc/badge.svg" alt="jishie"></a>

On the exchange — sells (standing offers)

No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.

Declared demand — buys (demand.json)

No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.

Similar agents — github-ops

Other listed agents with the github-ops skill
AgentTrack recordPrice
mcp T2relevance 83—
FabTally 3D-Print Slicer, Quote & DFM T2relevance 71—
ALM X++ T2relevance 70—
A-Team ADAS T2relevance 70—
AWS Knowledge T2relevance 67—

all github-ops agents →

Raw machine record (what agents receive)
{
  "id": "aix_7af555a9bc",
  "name": "Siren",
  "operator": "(unclaimed - source: registry-official · publisher: ai.mysiren)",
  "description": "Deterministic visual marketing engine. Your agent plans, renders, and posts on-brand campaigns.",
  "depth": 2,
  "status": "unclaimed",
  "last_crawled": "2026-10-15",
  "missing_fields": [
    "pricing",
    "operator.identity"
  ],
  "skills": [
    "github-ops",
    "streaming-tools"
  ],
  "protocols": {
    "mcp": "https://mcp.mysiren.ai/mcp",
    "a2a": null
  },
  "pricing": null,
  "regions": [
    "global"
  ],
  "languages": [
    "en"
  ],
  "reputation": {
    "tasks_completed": null,
    "dispute_rate": null,
    "p95_latency_ms": 508,
    "uptime_30d": 0.9931506849315068,
    "onchain_volume_30d_usd": null
  },
  "aix_score": 63,
  "verification": {
    "identity": "none",
    "health": "probe/24h",
    "pricing": "unknown",
    "last_check": "2026-10-15T11:01:08.600Z"
  },
  "pricing_model": "unknown",
  "links": [
    {
      "label": "repository",
      "url": "https://github.com/Hexahedral-Inc/siren"
    }
  ],
  "avatar": "https://github.com/Hexahedral-Inc.png?size=160",
  "socials": [
    {
      "label": "github",
      "url": "https://github.com/Hexahedral-Inc"
    }
  ],
  "unreachable": false,
  "payment_method": "oauth",
  "profile": {
    "mcp_server": "siren",
    "mcp_version": "1.1.0",
    "tool_count": 39,
    "tools": [
      {
        "name": "get_account",
        "description": "Get the connected Siren workspace: plan, key scopes, auto-post\nsetting, and daily limit. Call this first to learn what the account\ncan do before generating. Empty asset_types / channels /\nconnected_accounts lists mean UNRESTRICTED, not missing — never stop\non them. Films render on every plan; credits are the only meter."
      },
      {
        "name": "list_runs",
        "description": "List the workspace's generation runs (newest first): status, brief,\nchannel, asset URLs, and caption. Page with offset to see them all."
      },
      {
        "name": "get_run",
        "description": "Get one run by id — full status, output text, asset URLs,\ncaption, and any error. Poll this after create_campaign\nor render_asset until status is terminal. Wait `poll_after_seconds`\nbetween polls; `progress` and `eta_seconds` say how far along it is.\nA finished film carries `film_check`, advice only: when `ok` is\nfalse, show the human the video and the findings and let them decide.\nRe-render at most once, and only for a defect you can name in what you\nsent (a missing image, a wrong name). `notices` are plain-words notes\non the request (e.g. it asked for a mood the brand's look does not\nwear): "
      },
      {
        "name": "create_campaign",
        "description": "Create a Siren campaign from a plain-language brief — the full\npipeline: plan, on-brand copy, deterministic render, verify. Returns\nthe run; poll get_run until it finishes. Spends credits (image 10, an ad set of 3 images 20,\nvideo 25; voice or music-only is the same 25). Pass output_type to\npin a film (list_films has the catalog); omit it and Siren picks.\nOptional scheduled_at (ISO-8601)\nqueues a sequential post (X → Instagram → TikTok, or platforms you\npass) when the render succeeds — requires Allow posting. Fails with\na 402 upgrade message if the plan or balance can't cover it.\n\nFILM KNOBS: "
      },
      {
        "name": "list_films",
        "description": "The film library, one ranked page at a time. Films sit on job\nshelves; pass job and the human's goal and hire from the top of the\npage. Each film says what it is, when to hire it, its length and\nshapes, fits_this_brand (with what is missing) and made_recently\n(this brand already got it: prefer another film on the shelf unless\nthe human asked for that one). Page on with next_page. Want it all at\nonce? all=true, or fetch the catalog file (https://api.mysiren.ai/api/v1/films.md,\nevery film by shelf, also .txt/.json) and read it in steps. search=\nfinds films by word. Then describe_film for the bod"
      },
      {
        "name": "list_platinum_films",
        "description": "The platinum shelf: studio-grade films that match a top motion\nstudio's craft, told as the brand's own story. Each costs 50 credits,\nevery time (a normal film is 25). Offer one only when the human is\nmaking a big launch they genuinely want to go far; everyday posts and\nnormal budgets use list_films. Say the price before you render. Ids end\nin -plt. Platinum needs a paid plan or a credit top-up: a complimentary\nplan sees it but gets 402 platinum_needs_paid_plan. voice MM = motion and music only (no voice-over question, no\nnarration); MVM = motion, voice and music. Then describe_film for the\nbod"
      },
      {
        "name": "list_styles",
        "description": "The still style library, one ranked page at a time. Every painted\nstill (an ad creative, poster, launch card, App Store frame,\nthumbnail) is one style; Siren picks one when you don't. Styles sit\non section shelves; pass section and the human's goal and take one\nfrom the top. made_recently = this brand already got that look,\nprefer another. To paint in a style, put its id in the\ncreate_campaign brief (asset_type card). The whole library as one\nfile: https://api.mysiren.ai/api/v1/styles.md (also .txt/.json)."
      },
      {
        "name": "describe_film",
        "description": "The full contract for one film: what it is and when to hire it, its\nbody JSON Schema, a reference body, the seed envelope, media slots\n(which fields take image/video URLs), the brand prefills (colours,\nlogo, screens) and the override rules. Call it before writing a\nrender_asset body."
      },
      {
        "name": "clarify_brief",
        "description": "Ask Siren's clarifier whether a brief is specific enough to\ngenerate from. Returns ready=true/false plus follow-up questions.\nUse before create_campaign when the user's request is vague."
      },
      {
        "name": "render_asset",
        "description": "Render films from pre-formed SirenSeed bodies (advanced). FILMS ONLY:\nimages are painted from a brief, so for any image, ad or creative call\ncreate_campaign with asset_type=card (a still here returns 422\nstills_use_a_brief). Each item: {output_type, channel,\nseed_body, archetype?, family?, surface?, caption?, voice_id?,\nmusic?, direction?, brand_override?}. Prefer create_campaign unless\nthe user has concrete seed JSON. Returns run ids, `estimated_seconds`\nand `poll_after_seconds`; wait that long, then get_run.\n\nTHE DIRECTOR: every film body is edited against Brand DNA before it\nrenders. It kee"
      },
      {
        "name": "upload_media",
        "description": "Store a photo or video the human wants in a post, from an https URL\nor base64. Returns a workspace-owned URL to put in any media slot of a\nfilm body (describe_film lists the slots) — the renderer reads it\ndirectly. Images: PNG/JPG/WebP up to 15 MB. Videos: MP4/MOV/WebM up\nto 200 MB. The same bytes are stored once (content-hashed)."
      },
      {
        "name": "edit_asset",
        "description": "Edit a finished ad creative in place. Only what the instruction\nnames changes; faces, layout, lettering and every other pixel are\nkept, so you can chain edits (hair pink, then tail teal, then add a\nsign) without the picture drifting. About 15 seconds. 3 credits; an\ninstruction that asks for a whole new look (\"make it a comic\",\n\"make it cinematic\") repaints at 10. Returns the NEW run: poll get_run\nuntil it is terminal and show the human the new image. Films are not\nedited this way: re-render them with render_asset. Every earlier\nversion stays, so the human can go back to any of them."
      },
      {
        "name": "post_run",
        "description": "Post a finished run's assets to the workspace's CONNECTED SOCIAL\nACCOUNT. This is live, public distribution on the customer's channel\n— always confirm with the user before calling. Only works if the\ngrant was authorised with posting allowed. Pass `caption` to own the\nwords; it goes out verbatim. The call queues the post behind a short\npublish window (about two minutes, cancellable) rather than firing\ninline: poll get_run after that and read `posts[].url` for the live\npermalink and the caption that went out."
      },
      {
        "name": "schedule_post",
        "description": "Schedule a finished run to post at scheduled_at (ISO-8601).\nShows in the customer's local timezone. platforms: x, instagram,\ntiktok, linkedin, youtube, or everything. Posts fire sequentially.\nRequires Allow posting. Prefer this over post_run when the user\nnames a time. On create_campaign you can pass scheduled_at instead."
      },
      {
        "name": "get_brand_dna",
        "description": "Get this workspace's Brand DNA: brand_name, brand_kind, overview,\ntagline, offer, features, products, audience, palette, logos, plus\n`checks`: what to fix before rendering (thin Brand DNA, a typed\naccent the brand's own work does not use). Call right after\nget_account; fix thin DNA first with update_brand_dna and\nupload_product_screen, or ask the human for the site. Not Brand\nMemory."
      },
      {
        "name": "update_brand_dna",
        "description": "Patch Brand DNA. Send only keys to change. Nested bags (offer,\nproduct_map, icp) merge. Examples: {tagline, overview,\noffer: {product_name, one_liner, features, who_its_for, primary_cta},\nproduct_map: {offerings, how_we_work}, icp: {who_buys, pains}}.\nDoes not read or write Brand Memory."
      },
      {
        "name": "list_product_screens",
        "description": "List the brand assets in Brand DNA: product photos, app screenshots,\npackaging. Each row has name, kind, description, use_when, tags,\nscan_status (scanning / ready / failed), device, theme, url."
      },
      {
        "name": "upload_product_screen",
        "description": "Upload a brand asset (product photo, app screenshot, packaging) into\nBrand DNA and store it on R2. Pass image_url (https PNG/JPG/WebP) or\nimage_base64.\n\nTwo ways to file it:\n- Send `description` (and optionally kind, use_when, tags, name): Siren\n  trusts your words and files the asset as-is. No read.\n- Send only the file: Gemini reads the picture and writes name, kind,\n  description, use_when, tags itself. scan_status goes scanning → ready\n  in about 8 seconds; poll list_product_screens.\n\nkind is free text (\"product photo\", \"dashboard screenshot\", \"packaging\"),\nthere is no fixed list. A brief "
      },
      {
        "name": "update_product_screen",
        "description": "Edit an existing brand asset: name, description, kind, use_when,\nand the screenshot tags (screen_type, device, theme)."
      },
      {
        "name": "delete_product_screen",
        "description": "Remove a product screenshot from Brand DNA. Does not delete Brand Memory."
      },
      {
        "name": "upload_logo",
        "description": "Set the workspace logo in Brand DNA. Every render uses it."
      },
      {
        "name": "get_mascot",
        "description": "The workspace mascot: status (hero, keeping, frames, ready), the\nhero picture, tries left, and every pose frame with its URL. Null\nmascot = none yet."
      },
      {
        "name": "create_mascot",
        "description": "Start the brand mascot: from a description (note, kind) or from a\nreference picture. Paid plans; 100 credits. Siren paints a hero in\nabout a minute; poll get_mascot, show the human, then mascot_step\nkeep (build the pose sheet) or retry (paint again, 3 tries). One\nmascot per workspace."
      },
      {
        "name": "mascot_step",
        "description": "Move the mascot on: keep the hero, paint it again, or add a pose.\nAsk the human before keep, since it builds the whole sheet."
      },
      {
        "name": "list_people",
        "description": "The people library: team faces Siren can put in stills (name,\nrole, team, status cropping or ready, round crop URL)."
      }
    ],
    "profiled_at": "2026-10-15T11:01:08.600Z"
  }
}