1:"$Sreact.fragment" 2:I[22016,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],""] 3:I[29306,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"ProductMenu"] 4:I[5014,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"default"] 5:I[33964,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/0ahwd129-7-30.js"],"PublicMobileNav"] c:X 11:X 11:C 0:{"buildId":"B8hBXTSnfA3UAgbX2EKsx","data":[{"rsc":["$","$1","c",{"children":[["$","div",null,{"className":"bricolage_grotesque_bcc75999-module__ZKECFW__variable relative min-h-screen overflow-x-clip bg-[#07090E] text-[#EAEDF2]","children":[["$","header",null,{"className":"sticky top-0 z-40 border-b border-white/[0.07] bg-[#07090E]/85 backdrop-blur-md","children":["$","div",null,{"className":"mx-auto flex max-w-7xl items-center justify-between gap-4 px-4 py-3.5 sm:px-6","children":[["$","div",null,{"className":"flex min-w-0 items-center gap-8","children":[["$","$L2",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","nav",null,{"className":"hidden items-center gap-6 text-sm text-[#98A2B3] lg:flex","aria-label":"Primary","children":[["$","$L3",null,{"items":[{"label":"Scan","href":"/product/scan","description":"Repeatable DAST for web apps and APIs"},{"label":"Hunt","href":"/product/hunt","description":"Adaptive investigation with your coding agent"},{"label":"AI Security","href":"/product/ai-security","description":"Test chat, RAG, agent, and MCP systems","badge":"Preview"},{"label":"Model Intake","href":"/product/model-intake","description":"Check model artifacts before deployment","badge":"Preview"},{"label":"Attack Surface","href":"/product/attack-surface","description":"Endpoint inventory, subdomains, CT monitoring"},{"label":"Connected Devices","href":"/product/connected-devices","description":"TVs, cameras, printers, routers, appliances"}]}],[["$","a","/check/",{"href":"/check/","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Free check"}],["$","$L2","/docs",{"href":"/docs","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Docs"}],["$","$L2","/enterprise",{"href":"/enterprise","className":"transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400 font-semibold text-[#EAEDF2]","children":"Enterprise"}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1.5 transition-colors hover:text-white focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":[["$","$L4",null,{"icon":{"name":"git-fork","size":24,"node":[["circle",{"cx":"12","cy":"18","r":"3","key":"1mpf1b"}],["circle",{"cx":"6","cy":"6","r":"3","key":"1lh9wr"}],["circle",{"cx":"18","cy":"6","r":"3","key":"1h7g24"}],["path",{"d":"M18 9v2c0 .6-.4 1-1 1H7c-.6 0-1-.4-1-1V9","key":"1uq4wg"}],["path",{"d":"M12 12v3","key":"158kv8"}]]},"className":"h-3.5 w-3.5","aria-hidden":"true"}],"GitHub"]}]]}]]}],["$","div",null,{"className":"flex items-center gap-2 sm:gap-4","children":[["$","$L5",null,{"items":[{"label":"Scan","href":"/product/scan"},{"label":"Hunt","href":"/product/hunt"},{"label":"AI Security","href":"/product/ai-security"},{"label":"Model Intake","href":"/product/model-intake"},{"label":"Attack Surface","href":"/product/attack-surface"},{"label":"Connected Devices","href":"/product/connected-devices"},{"label":"Free check","href":"/check/","isAnchor":true,"emphasis":false},{"label":"Docs","href":"/docs","isAnchor":false,"emphasis":false},{"label":"Enterprise","href":"/enterprise","isAnchor":false,"emphasis":true},{"label":"GitHub","href":"https://github.com/andriyze/shakerscan"},{"label":"Open Source","href":"/open-source"}]}],["$","$L2",null,{"href":"/open-source#install","className":"rounded-lg bg-emerald-400 px-3.5 py-2 text-sm font-semibold text-emerald-950 transition-colors hover:bg-emerald-300 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-emerald-400","children":"Install ShakerScan"}]]}]]}]}],"$L6","$L7"]}],["$L8","$L9"],"$La"]}],"isPartial":"$@b","staleTime":"$c","varyParams":null},{"rsc":"$Ld","isPartial":"$@e","staleTime":"$c","varyParams":null},{"rsc":"$Lf","isPartial":"$@10","staleTime":"$c","varyParams":"$11"},{"rsc":"$L12","isPartial":"$@13","staleTime":"$c","varyParams":"$11"},{"rsc":"$L14","isPartial":"$@15","staleTime":"$c","varyParams":"$11"},{"rsc":"$L16","isPartial":"$@17","staleTime":"$c","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@18","rootVaryParams":null,"needsRuntimeRequest":"$@19"} 26:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"] 27:"$Sreact.suspense" 29:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"] 2a:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"] 2b:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"] 2c:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"] 2d:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"] 2e:I[8821,["/_next/static/chunks/3fntmmi971322.js","/_next/static/chunks/22aga_6h1t_-r.js"],"default"] :HL["/_next/static/chunks/17s1t3rwlqr6e.css","style"] :HL["/_next/static/chunks/0p5_b9mq-qlz-.css","style"] 6:["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-8 sm:px-6 sm:py-12 lg:grid lg:grid-cols-[230px_minmax(0,1fr)] lg:gap-10 xl:grid-cols-[230px_minmax(0,1fr)_200px]","children":[["$","aside",null,{"className":"lg:sticky lg:top-20 lg:self-start","children":[["$","details",null,{"className":"rounded-lg border border-white/10 bg-[#0C1118] lg:hidden","children":[["$","summary",null,{"className":"cursor-pointer px-4 py-3 text-sm font-medium text-white","children":"Documentation menu"}],["$","div",null,{"className":"border-t border-white/[0.07] px-4 py-4","children":["$","nav",null,{"aria-label":"Open-source documentation","className":"space-y-6","children":[["$","$L2",null,{"href":"/docs/open-source","className":"block text-sm font-semibold text-white hover:text-emerald-200","children":"Documentation home"}],[["$","div","Getting started",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Getting started"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/readme","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"README: install and first scan"}]}],["$","li","WALKTHROUGH.md",{"children":["$","$L2",null,{"href":"/docs/open-source/walkthrough","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"First-run walkthrough"}]}],["$","li","docs/upgrade-and-rollback.md",{"children":["$","$L2",null,{"href":"/docs/open-source/upgrade-and-rollback","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Upgrade and rollback"}]}],["$","li","docs/client.md",{"children":["$","$L2",null,{"href":"/docs/open-source/client","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Client, CLI and public checks"}]}],["$","li","skills/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/skills","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent skills and setup"}]}]]}]]}],["$","div","Workflows",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Workflows"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/product-model.md",{"children":["$","$L2",null,{"href":"/docs/open-source/product-model","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Product model and vocabulary"}]}],["$","li","docs/hunt-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt architecture"}]}],["$","li","docs/hunt-authorization-workflow.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-authorization-workflow","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization workflow"}]}],["$","li","docs/hunt-authorization-behavior.md",{"children":["$","$L2",null,{"href":"/docs/open-source/hunt-authorization-behavior","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Hunt authorization behavior"}]}],["$","li","docs/AI_TEST_WORKFLOWS.md",{"children":["$","$L2",null,{"href":"/docs/open-source/AI_TEST_WORKFLOWS","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"AI test workflows"}]}],"$L1a","$L1b"]}]]}],"$L1c","$L1d"],"$L1e"]}]}]]}],"$L1f"]}],"$L20","$L21"]}] 7:["$","footer",null,{"className":"border-t border-white/[0.07]","children":["$","div",null,{"className":"mx-auto max-w-7xl px-4 py-12 sm:px-6 sm:py-16","children":[["$","div",null,{"className":"grid gap-10 sm:grid-cols-2 lg:grid-cols-[1.4fr_1fr_1fr_1fr]","children":[["$","div",null,{"children":[["$","$L2",null,{"href":"/","className":"font-display inline-flex items-baseline gap-2 text-lg font-bold tracking-tight text-white","children":[["$","span",null,{"className":"h-2 w-2 translate-y-[-1px] bg-emerald-400","aria-hidden":"true"}],"ShakerScan"]}],["$","p",null,{"className":"mt-3 max-w-xs text-sm leading-6 text-[#7C8798]","children":"Open-source security testing platform for web applications, APIs, AI systems, and network-connected devices. Self-hosted in Docker."}],["$","p",null,{"className":"mt-4 text-xs leading-5 text-[#5F6B7A]","children":"Only test systems you own or are explicitly authorized to assess."}]]}],[["$","div","Product",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Product"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/product/scan",{"children":["$","$L2",null,{"href":"/product/scan","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Scan"}]}],["$","li","/product/hunt",{"children":["$","$L2",null,{"href":"/product/hunt","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Hunt"}]}],["$","li","/product/ai-security",{"children":["$","$L2",null,{"href":"/product/ai-security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"AI Security"}]}],["$","li","/product/model-intake",{"children":["$","$L2",null,{"href":"/product/model-intake","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Model Intake"}]}],["$","li","/product/attack-surface",{"children":["$","$L2",null,{"href":"/product/attack-surface","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Attack Surface"}]}],["$","li","/product/connected-devices",{"children":["$","$L2",null,{"href":"/product/connected-devices","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Connected Devices"}]}]]}]]}],["$","div","Resources",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Resources"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/open-source",{"children":["$","$L2",null,{"href":"/open-source","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Open Source"}]}],["$","li","/check/",{"children":["$","a",null,{"href":"/check/","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Free posture check"}]}],["$","li","/docs",{"children":["$","$L2",null,{"href":"/docs","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Documentation"}]}],["$","li","/research",{"children":["$","$L2",null,{"href":"/research","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Research"}]}],["$","li","/about",{"children":["$","$L2",null,{"href":"/about","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"About"}]}]]}]]}],["$","div","Trust",{"children":[["$","h4",null,{"className":"font-mono text-[11px] tracking-[0.22em] text-[#5F6B7A] uppercase","children":"Trust"}],["$","ul",null,{"className":"mt-4 space-y-2.5","children":[["$","li","/security",{"children":["$","$L2",null,{"href":"/security","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Security"}]}],"$L22","$L23","$L24"]}]]}]]]}],"$L25"]}]}] 8:["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17s1t3rwlqr6e.css","precedence":"next"}] 9:["$","script","script-0",{"src":"/_next/static/chunks/0ahwd129-7-30.js","async":true}] a:["$","$L26",null,{"children":["$","$27",null,{"name":"Next.MetadataOutlet","children":"$@28"}]}] d:["$","$1","h",{"children":[null,["$","$L29",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L2a",null,{"children":["$","$27",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"ShakerScan 2.3.5 — ShakerScan Docs"}],["$","meta","1",{"name":"description","content":"The agent kit works against a connected remote instance, and the targets page follows the workspace capability manifest. Upgrade in place from 2.3.4; 0.8.18…"}],["$","meta","2",{"name":"robots","content":"index, follow"}],["$","link","3",{"rel":"canonical","href":"https://shakerscan.com/docs/open-source/releases/2.3.5"}],["$","meta","4",{"property":"og:title","content":"ShakerScan 2.3.5 — ShakerScan Docs"}],["$","meta","5",{"property":"og:description","content":"The agent kit works against a connected remote instance, and the targets page follows the workspace capability manifest. Upgrade in place from 2.3.4; 0.8.18…"}],["$","meta","6",{"property":"og:url","content":"https://shakerscan.com/docs/open-source/releases/2.3.5"}],["$","meta","7",{"property":"og:site_name","content":"ShakerScan"}],["$","meta","8",{"property":"og:type","content":"article"}],["$","meta","9",{"name":"twitter:card","content":"summary"}],["$","meta","10",{"name":"twitter:title","content":"ShakerScan 2.3.5 — ShakerScan Docs"}],["$","meta","11",{"name":"twitter:description","content":"The agent kit works against a connected remote instance, and the targets page follows the workspace capability manifest. Upgrade in place from 2.3.4; 0.8.18…"}],["$","link","12",{"rel":"icon","href":"/favicon.svg","type":"image/svg+xml"}],["$","link","13",{"rel":"apple-touch-icon","href":"/apple-icon.svg","type":"image/svg+xml"}],["$","$L2b","14",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}] f:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 12:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 14:["$","$1","c",{"children":[null,["$","$L2c",null,{"parallelRouterKey":"children","template":["$","$L2d",null,{}]}]]}] 16:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0p5_b9mq-qlz-.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true}]],["$","html",null,{"lang":"en","data-theme":"dark","style":{"colorScheme":"dark"},"children":["$","body",null,{"className":"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased","children":["$","$L2c",null,{"parallelRouterKey":"children","error":"$2e","errorStyles":[],"errorScripts":[["$","script","script-0",{"src":"/_next/static/chunks/22aga_6h1t_-r.js","async":true}]],"template":["$","$L2d",null,{}],"notFound":[["$","div",null,{"className":"flex min-h-screen flex-col items-center justify-center bg-stone-950 text-stone-100","children":[["$","h1",null,{"className":"text-6xl font-bold tracking-tight text-stone-400","children":"404"}],["$","p",null,{"className":"mt-4 text-lg text-stone-500","children":"Page not found"}],["$","$L2",null,{"href":"/","className":"mt-8 rounded-md bg-stone-800 px-5 py-2.5 text-sm font-medium text-stone-200 transition hover:bg-stone-700","children":"Back to home"}]]}],[]]}]}]}]]}] 1a:["$","li","docs/connected-device-security.md",{"children":["$","$L2",null,{"href":"/docs/open-source/connected-device-security","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Connected-device security"}]}] 1b:["$","li","docs/model-intake-security-review-roadmap.md",{"children":["$","$L2",null,{"href":"/docs/open-source/model-intake-security-review-roadmap","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Model Intake boundary"}]}] 1c:["$","div","Architecture and operations",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Architecture and operations"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/dast-asm-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/dast-asm-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"DAST execution and Continuous ASM"}]}],["$","li","docs/multi-node-guide.md",{"children":["$","$L2",null,{"href":"/docs/open-source/multi-node-guide","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node Fleet guide"}]}],["$","li","docs/multi-node-architecture.md",{"children":["$","$L2",null,{"href":"/docs/open-source/multi-node-architecture","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Multi-node architecture"}]}],["$","li","docs/mcp.md",{"children":["$","$L2",null,{"href":"/docs/open-source/mcp","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"MCP adapter"}]}],["$","li","docs/owasp-coverage-matrix.md",{"children":["$","$L2",null,{"href":"/docs/open-source/owasp-coverage-matrix","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"OWASP coverage matrix"}]}],["$","li","docs/functionality-reference.md",{"children":["$","$L2",null,{"href":"/docs/open-source/functionality-reference","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Functionality reference"}]}]]}]]}] 1d:["$","div","Releases and process",{"children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"Releases and process"}],["$","ul",null,{"className":"mt-2.5 space-y-1","children":[["$","li","docs/release-process.md",{"children":["$","$L2",null,{"href":"/docs/open-source/release-process","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release process"}]}],["$","li","docs/sbom.md",{"children":["$","$L2",null,{"href":"/docs/open-source/sbom","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release SBOMs"}]}],["$","li","docs/releases/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/releases/README","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release notes index"}]}],["$","li","RELEASES.md",{"children":["$","$L2",null,{"href":"/docs/open-source/release-mapping","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Release mapping"}]}],["$","li","benchmarks/README.md",{"children":["$","$L2",null,{"href":"/docs/open-source/benchmarks","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Benchmark fixtures"}]}],["$","li","AGENTS.md",{"children":["$","$L2",null,{"href":"/docs/open-source/agents","className":"block rounded-md px-2 py-1.5 text-sm leading-5 transition-colors text-[#98A2B3] hover:bg-white/[0.04] hover:text-white","children":"Agent operating policy"}]}]]}]]}] 1e:["$","div",null,{"className":"border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["Rendered from"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/tree/v2.5.4/docs","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["v2.5.4"," ",["$","$L4",null,{"icon":{"name":"external-link","size":24,"node":[["path",{"d":"M15 3h6v6","key":"1q9fwt"}],["path",{"d":"M10 14 21 3","key":"gplh6r"}],["path",{"d":"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6","key":"a6xqqp"}]]},"className":"h-3 w-3","aria-hidden":"true"}]]}],", the current stable channel."]}] 1f:["$","div",null,{"className":"hidden max-h-[calc(100vh-6rem)] overflow-y-auto pr-2 lg:block","children":"$6:props:children:0:props:children:0:props:children:1:props:children"}] 20:["$","main",null,{"className":"mt-8 min-w-0 lg:mt-0","children":[["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"BreadcrumbList\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https://shakerscan.com/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docs\",\"item\":\"https://shakerscan.com/docs\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Open Source\",\"item\":\"https://shakerscan.com/docs/open-source\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"ShakerScan 2.3.5\",\"item\":\"https://shakerscan.com/docs/open-source/releases/2.3.5\"}]}"}}],["$","script",null,{"type":"application/ld+json","dangerouslySetInnerHTML":{"__html":"{\"@context\":\"https://schema.org\",\"@type\":\"TechArticle\",\"headline\":\"ShakerScan 2.3.5\",\"description\":\"The agent kit works against a connected remote instance, and the targets page follows the workspace capability manifest. Upgrade in place from 2.3.4; 0.8.18…\",\"url\":\"https://shakerscan.com/docs/open-source/releases/2.3.5\",\"version\":\"2.5.4\",\"inLanguage\":\"en\",\"author\":{\"@type\":\"Organization\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"},\"isPartOf\":{\"@type\":\"WebSite\",\"name\":\"ShakerScan\",\"url\":\"https://shakerscan.com\"}}"}}],["$","nav",null,{"className":"font-mono text-[11px] tracking-wide text-[#5F6B7A] uppercase","aria-label":"Breadcrumb","children":[["$","$L2",null,{"href":"/docs","className":"transition-colors hover:text-[#98A2B3]","children":"Docs"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","$L2",null,{"href":"/docs/open-source","className":"transition-colors hover:text-[#98A2B3]","children":"Open Source"}],["$","span",null,{"className":"mx-2 text-white/20","children":"/"}],["$","span",null,{"className":"normal-case","children":"docs/releases/2.3.5.md"}]]}],["$","div",null,{"className":"mt-4 flex flex-wrap items-center gap-x-5 gap-y-2 border-b border-white/[0.07] pb-4 text-xs text-[#7C8798]","children":[["$","span",null,{"children":["Pinned to ",["$","span",null,{"className":"font-mono text-[#C6CDD8]","children":"v2.5.4"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/v2.5.4/docs/releases/2.3.5.md","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["View source on GitHub ",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}],["$","a",null,{"href":"https://github.com/andriyze/shakerscan/issues","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 text-[#98A2B3] hover:text-white","children":["Report an issue ",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]]}],["$","article",null,{"className":"mt-6","children":["$","div",null,{"className":"oss-markdown","children":[["$","h1","h1-0",{"id":"shakerscan-235","children":["$","a",null,{"href":"#shakerscan-235","className":"oss-heading-anchor","children":"ShakerScan 2.3.5"}]}],"\n",["$","p","p-0",{"children":"The agent kit works against a connected remote instance, and the targets page follows the\nworkspace capability manifest. Upgrade in place from 2.3.4; 0.8.18 remains the oldest directly\ncertified upgrade base. No change to the deterministic proof boundary."}],"\n",["$","h2","h2-0",{"id":"changes","children":["$","a",null,{"href":"#changes","className":"oss-heading-anchor","children":"Changes"}]}],"\n",["$","h3","h3-0",{"id":"one-way-to-call-the-api-from-an-agent-session-132","children":["$","a",null,{"href":"#one-way-to-call-the-api-from-an-agent-session-132","className":"oss-heading-anchor","children":"One way to call the API from an agent session (#132)"}]}],"\n",["$","ul","ul-0",{"children":["\n",["$","li","li-0",{"children":[["$","code","code-0",{"children":"shakerscan api METHOD PATH [JSON]"}]," (",["$","code","code-1",{"children":"scripts/api_cli.py"}],", a launcher subcommand shipped by the\ninstaller) knows the base URL (","$L2f",", ","$L30",", ","$L31",", default\nloopback), reads a credential from ","$L32"," or ","$L33",", sends\nit only over HTTPS, prints the JSON answer, and on an error prints the instance's own detail."]}],"\n","$L34","\n"]}],"\n","$L35","\n","$L36","\n","$L37","\n","$L38","\n","$L39","\n","$L3a"]}]}],"$L3b"]}] 21:["$","aside",null,{"className":"hidden xl:sticky xl:top-20 xl:block xl:self-start","children":["$","nav",null,{"aria-label":"On this page","children":[["$","h2",null,{"className":"font-mono text-[10px] tracking-[0.2em] text-[#5F6B7A] uppercase","children":"On this page"}],["$","ul",null,{"className":"mt-2.5 max-h-[calc(100vh-8rem)] space-y-1 overflow-y-auto border-l border-white/[0.07] pl-3 text-xs leading-5","children":[["$","li","changes-2",{"children":["$","a",null,{"href":"#changes","className":"block text-[#98A2B3] hover:text-white ","children":"Changes"}]}],["$","li","one-way-to-call-the-api-from-an-agent-session-132-3",{"children":["$","a",null,{"href":"#one-way-to-call-the-api-from-an-agent-session-132","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"One way to call the API from an agent session (#132)"}]}],["$","li","the-client-carries-the-kit-133-3",{"children":["$","a",null,{"href":"#the-client-carries-the-kit-133","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"The client carries the kit (#133)"}]}],["$","li","targets-page-131-3",{"children":["$","a",null,{"href":"#targets-page-131","className":"block text-[#98A2B3] hover:text-white pl-3 text-[#7C8798]","children":"Targets page (#131)"}]}],["$","li","upgrade-2",{"children":["$","a",null,{"href":"#upgrade","className":"block text-[#98A2B3] hover:text-white ","children":"Upgrade"}]}]]}]]}]}] 22:["$","li","/vulnerability-disclosure",{"children":["$","$L2",null,{"href":"/vulnerability-disclosure","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Vulnerability disclosure"}]}] 23:["$","li","/privacy",{"children":["$","$L2",null,{"href":"/privacy","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Privacy"}]}] 24:["$","li","/terms",{"children":["$","$L2",null,{"href":"/terms","className":"inline-flex items-center gap-1 text-sm text-[#98A2B3] transition-colors hover:text-white","children":"Terms"}]}] 25:["$","div",null,{"className":"mt-12 flex flex-col items-center justify-between gap-4 border-t border-white/[0.07] pt-6 sm:flex-row","children":[["$","span",null,{"className":"font-mono text-[11px] text-[#5F6B7A]","children":["© ",2026," ShakerScan. Source available under"," ",["$","a",null,{"href":"https://github.com/andriyze/shakerscan/blob/main/LICENSE","target":"_blank","rel":"noreferrer","className":"text-[#7C8798] underline decoration-white/20 underline-offset-2 transition-colors hover:text-white","children":"AGPL-3.0"}],"."]}],["$","div",null,{"className":"flex flex-wrap items-center justify-center gap-x-5 gap-y-2","children":[[["$","$L2","/enterprise",{"href":"/enterprise","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":"Enterprise"}],["$","a","mailto:sales@shakerscan.com",{"href":"mailto:sales@shakerscan.com","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-1 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":["Contact",["$","$L4",null,{"icon":"$1e:props:children:2:props:children:2:props:icon","className":"h-3 w-3","aria-hidden":"true"}]]}]],["$","a",null,{"href":"https://github.com/andriyze/shakerscan","target":"_blank","rel":"noreferrer","className":"inline-flex items-center gap-2 font-mono text-[11px] text-[#7C8798] transition-colors hover:text-white","children":[["$","$L4",null,{"icon":"$0:data:0:rsc:props:children:0:props:children:0:props:children:props:children:0:props:children:1:props:children:2:props:children:0:props:icon","className":"h-3.5 w-3.5","aria-hidden":"true"}],"github.com/andriyze/shakerscan"]}]]}]]}] 28:null 19:true c:300 2f:["$","code","code-2",{"children":"--api-url"}] 30:["$","code","code-3",{"children":"SHAKERSCAN_API_BASE"}] 31:["$","code","code-4",{"children":"SHAKERSCAN_API_URL"}] 32:["$","code","code-5",{"children":"SHAKERSCAN_API_TOKEN_FILE"}] 33:["$","code","code-6",{"children":"SHAKERSCAN_API_TOKEN"}] 34:["$","li","li-1",{"children":["The agent kit (AGENTS.md, the ",["$","code","code-0",{"children":".claude"}]," commands and agents, the shakerscan, content-discovery,\njs-analyze and ai-security-session skills) calls the API only through it, so the same\ninstructions work against a local engine and against a remote, authenticating instance such\nas ShakerScan Enterprise. ",["$","code","code-1",{"children":"scripts/scan_cli.py"}]," sends the same bearer token the Hunt CLI does.\nThe session-start hook has a managed-instance path (no Docker, no queue route). AGENTS.md\nexplains a connected remote instance."]}] 35:["$","h3","h3-1",{"id":"the-client-carries-the-kit-133","children":["$","a",null,{"href":"#the-client-carries-the-kit-133","className":"oss-heading-anchor","children":"The client carries the kit (#133)"}]}] 36:["$","ul","ul-1",{"children":["\n",["$","li","li-0",{"children":["Client 0.3.0 (",["$","code","code-0",{"children":"client/"}],", published separately as ",["$","code","code-1",{"children":"client-v0.3.0"}],"): ",["$","code","code-2",{"children":"shakerscan agent [claude|codex|opencode]"}]," materializes the kit into a workspace against the connected\ninstance; ",["$","code","code-3",{"children":"shakerscan api"}]," and ",["$","code","code-4",{"children":"shakerscan scan"}]," are the runtime CLIs against it."]}],"\n"]}] 37:["$","h3","h3-2",{"id":"targets-page-131","children":["$","a",null,{"href":"#targets-page-131","className":"oss-heading-anchor","children":"Targets page (#131)"}]}] 38:["$","ul","ul-2",{"children":["\n",["$","li","li-0",{"children":["The \"Authorize for active testing (once)\" button follows the ",["$","code","code-0",{"children":"target_authorization"}]," workspace\ncapability: a managed deployment that records the authorization itself when active testing\nstarts declares it unavailable, and the page says so instead of showing the button. Standalone\ndeployments are unchanged."]}],"\n"]}] 39:["$","h2","h2-1",{"id":"upgrade","children":["$","a",null,{"href":"#upgrade","className":"oss-heading-anchor","children":"Upgrade"}]}] 3a:["$","p","p-1",{"children":"Upgrade in place from 2.3.4. No migration."}] 3b:["$","p",null,{"className":"mt-10 border-t border-white/[0.07] pt-4 text-xs leading-5 text-[#5F6B7A]","children":["This page is rendered from ",["$","span",null,{"className":"font-mono","children":"docs/releases/2.3.5.md"}]," in the open-source repository at ","v2.5.4",". When documentation and implementation disagree, the code, database schema, and tests at that tag are authoritative."]}] c:C 18:0 e:"$undefined" 10:"$undefined" 13:"$undefined" 15:"$undefined" 17:"$undefined" b:"$undefined"