Agent skill

Scalar Docs

by scalar in scalar/scalar

Skill for writing and updating scalar.config.json — Scalar Docs configuration reference for users and LLMs.

MITAuto-check passedBackend & APIs

Install Scalar Docs

skills CLI
$ npx skills add scalar/scalar --skill scalar-docs -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install scalar/scalar scalar-docs --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/scalar/scalar.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/scalar-docs .claude/skills/scalar-docs && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
scalar-docs
GitHub stars
16k
Token cost
~3.6k tokens
SKILL.md length
1,041 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Skill for writing and updating scalar.config.json — Scalar Docs configuration reference for users and LLMs.

  • Tasks that involve OpenAPI specifications
  • SKILL.md covers Overview, Quick Start, Root Properties and info, plus 8 more sections
  • Calls npx; reaches github.com and registry.scalar.com

What it does

Scalar Docs is an agent skill from scalar/scalar. Skill for writing and updating scalar.config.json — Scalar Docs configuration reference for users and LLMs.

Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering OpenAPI specifications. It works with OpenAPI. The repository describes itself as: Scalar is an open-source API platform: 🌐 Modern REST API Client 📖 Beautiful API References ✨ 1st-Class OpenAPI/Swagger Support. The licence is MIT.

When your agent uses it

  • Tasks that involve OpenAPI specifications

Example prompts

  • “/scalar-docs”

Requirements

  • Node.js

What it can do on your machine

Read from SKILL.md and the folder at commit c1b8103. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • registry.scalar.com

    Also links to:

    • docs.scalar.com
    • dashboard.scalar.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Scalar Docs loads about 3.6k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,041 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from scalar/scalar at commit c1b8103, republished under its MIT licence (© scalar). 1,041 words, ~3,647 tokens.

Download SKILL.mdSave it as .claude/skills/scalar-docs/SKILL.md (or your agent's skills folder).
name
scalar-docs
description
Skill for writing and updating scalar.config.json — Scalar Docs configuration reference for users and LLMs.

Scalar Docs Configuration Skill — scalar.config.json

Reference for writing and updating scalar.config.json, the central configuration file for Scalar Docs. Use this when creating, editing, or validating Docs configuration for any project.

Overview

  • File: scalar.config.json (or scalar.config.json5)
  • Location: Repository root by default; path can be overridden in Scalar Dashboard
  • Schema: https://registry.scalar.com/@scalar/schemas/config — enables autocomplete in VS Code/Cursor when json.schemaDownload.enable is true
  • Version: Use "scalar": "2.0.0" for the latest format

Quick Start

Create a minimal config:

bash
npx @scalar/cli project init

Minimal structure:

json
{
  "$schema": "https://registry.scalar.com/@scalar/schemas/config",
  "scalar": "2.0.0",
  "info": {
    "title": "My Documentation",
    "description": "The best documentation you've read today"
  },
  "navigation": {
    "routes": {
      "/": {
        "title": "Introduction",
        "type": "page",
        "filepath": "docs/introduction.md"
      }
    }
  }
}

Validate config: npx @scalar/cli project check-config


Root Properties

PropertyTypeDescription
$schemastringJSON Schema URL for editor autocomplete and validation
scalarstringConfiguration version. Use "2.0.0"
infoobjectProject metadata (title, description)
navigationobjectNavigation structure (header, routes, sidebar, tabs)
versionsobjectMulti-version navigation. Use instead of navigation for versioned docs
siteConfigobjectSite-level settings (domain, theme, head, logo, routing)
assetsDirstringRelative path to assets folder from config root

info

Project metadata displayed across the site:

json
{
  "info": {
    "title": "My Documentation",
    "description": "Comprehensive guides for our API"
  }
}

navigation

All navigation is in navigation.routes. Each route key is the URL path; the value is a config object.

navigation.header

Links in the top bar. Use type: "spacer" to push items before it left and after it right.

json
"header": [
  { "type": "link", "title": "Home", "to": "/" },
  { "type": "spacer" },
  { "type": "link", "title": "Log in", "to": "https://dashboard.example.com/login", "newTab": true },
  { "type": "link", "title": "Register", "style": "button", "icon": "phosphor/regular/user-plus", "to": "https://...", "newTab": true }
]

Properties: title, type ("link" | "spacer"), to, style ("button" | "link"), icon, newTab

The header only renders when this array has at least one item, and it is where the logo goes. A lone { "type": "spacer" } is enough to get a header with just the logo.

navigation.sidebar

Links at the bottom of the sidebar:

json
"sidebar": [
  { "title": "Log in", "to": "https://...", "newTab": true }
]
navigation.tabs

Tabs for quick access to sections:

json
"tabs": [
  { "title": "API", "to": "/api", "icon": "phosphor/regular/plug" }
]

Tabs and a header work together, and neither requires the other. With tabs but no header, the logo renders in the tab bar.

Route Types
Page (type: "page")

Markdown/MDX content from a file:

json
"/getting-started": {
  "type": "page",
  "title": "Getting Started",
  "filepath": "docs/getting-started.md",
  "description": "Optional SEO description",
  "icon": "phosphor/regular/rocket",
  "showInSidebar": true,
  "layout": { "toc": true, "sidebar": true }
}

Layout: toc (default true), sidebar (default true).

Hidden pages: Set showInSidebar: false to hide a page from the sidebar while keeping it accessible via its direct URL.

OpenAPI (type: "openapi")

API reference from file, Registry, or URL:

File:

json
"/api": {
  "type": "openapi",
  "title": "My API",
  "filepath": "docs/api-reference/openapi.yaml",
  "icon": "phosphor/regular/plug"
}

Registry:

json
"/api": {
  "type": "openapi",
  "title": "My API",
  "namespace": "my-organization",
  "slug": "your-api"
}

URL:

json
"/api": {
  "type": "openapi",
  "title": "My API",
  "url": "https://example.com/openapi.json"
}

Display modes: folder (default), flat, nested.

Single page mode: Set singlePage: true to render all operations on a single page instead of creating separate pages for each operation:

json
"/api": {
  "type": "openapi",
  "title": "My API",
  "filepath": "docs/api-reference/openapi.yaml",
  "singlePage": true
}

API Reference options (authentication, theme, etc.) go in a config object — same options as the API Reference configuration.

Group (type: "group")

Collapsible section with children:

json
"/products": {
  "type": "group",
  "title": "Products",
  "mode": "flat",
  "icon": "phosphor/regular/package",
  "children": {
    "/docs": { "type": "page", "title": "Documentation", "filepath": "docs/documentation.md" },
    "/api": { "type": "openapi", "title": "API Reference", "filepath": "openapi.yaml" }
  }
}

Modes: flat, nested, folder (default).

Folder landing pages: Add a page property to make clicking the folder navigate to a page:

json
"/company": {
  "type": "group",
  "title": "Company",
  "mode": "folder",
  "page": { "type": "page", "title": "About Us", "filepath": "docs/company/index.md" },
  "children": {
    "/team": { "type": "page", "title": "Our Team", "filepath": "docs/company/team.md" }
  }
}

Default open state: Use open: true to expand a folder by default.

External URL:

json
"/github": {
  "type": "link",
  "title": "GitHub",
  "url": "https://github.com/org/repo",
  "icon": "phosphor/regular/github-logo"
}

siteConfig

branding

Logo — single URL or per mode:

json
"logo": "https://example.com/logo.svg"
// or
"logo": {
  "darkMode": "https://example.com/logo-dark.svg",
  "lightMode": "https://example.com/logo-light.svg"
}

The logo renders on the first surface the site has: header (if navigation.header has items) → tabs (if navigation.tabs but no header) → sidebar (if neither). A page that hides all three via layout does not render it at all. With no logo set, info.title renders in the same place.

Theme — one of: default, alternate, moon, purple, solarized, bluePlanet, deepSpace, saturn, kepler, mars, laserwave, none

json
"theme": "purple"

Social card — point og.imageTemplate at a TSX/JSX template in the project to replace the generated share image. The path is relative to the config file and must stay inside the project.

json
"og": {
  "imageTemplate": "./og/card.tsx"
}

The template default-exports a pure function taking { title, description?, breadcrumb?, path, colors, logo, mode } and returning JSX. It is drawn by Satori: flexbox only, inline styles only, no packages imported. An og:image in siteConfig.head.meta overrides it site-wide.

domain

Subdomain (free): https://<subdomain>.apidocumentation.com

json
"subdomain": "your-docs"

Custom domain (Pro): https://docs.example.com

json
"customDomain": "docs.example.com"

Subpath — for multiple projects on same domain:

json
"subpath": "/guides"
layout
json
"layout": {
  "toc": true,
  "header": true
}
head

Inject scripts, styles, meta tags, and links:

json
"head": {
  "title": "My Documentation",
  "meta": [
    { "name": "description", "content": "API documentation" },
    { "property": "og:image", "content": "https://example.com/og.png" }
  ],
  "styles": [{ "path": "docs/assets/custom.css", "tagPosition": "head" }],
  "scripts": [{ "path": "docs/assets/analytics.js", "tagPosition": "bodyClose" }],
  "links": [{ "rel": "icon", "href": "/favicon.png" }]
}

For scripts and styles: path relative to config root. For links (favicon): root-relative (/favicon.png).

tagPosition: "head" | "bodyOpen" | "bodyClose".

json
"footer": {
  "filepath": "docs/footer.html"
}
Show full SKILL.md (446 more words)Show less
rss

Publishes an RSS feed for your changelog or blog so readers can subscribe. Written to <path>/rss.xml — a changelog at /changelog publishes its feed at /changelog/rss.xml.

json
"rss": {
  "path": "/changelog",
  "title": "Scalar Changelog",
  "description": "Every Scalar release, as a feed"
}
PropertyTypeRequiredDescription
pathstringYesChangelog route, e.g. /changelog. No .. segments
titlestringNoFeed title. Defaults to your site title plus Changelog
descriptionstringNoFeed description
entriesstringNoheadings (default) or pages — see below

To publish several feeds, set rss to a list of these objects. Each needs its own unique path and is written to <path>/rss.xml:

json
"rss": [
  { "path": "/changelog", "title": "Scalar Changelog" },
  { "path": "/blog", "title": "Scalar Blog" }
]

Entries come from dated headings (## 1.2.0 (2026-07-24)) on the page at path or any page beneath it, merged newest-first. Only the top-most dated heading level starts entries; deeper headings (dated or not) fold into the release above them. Hidden pages are skipped. Every page advertises the feed with a <link rel="alternate" type="application/rss+xml"> tag, and pages under path show a subscribe button in the page header.

Set entries to pages for a blog instead: every page under path with a date in its frontmatter (date: 2026-07-24) becomes one item, titled by the page. Pages without a date (an index, a draft) are skipped. Use the default headings for a changelog.

routing

Redirects:

json
"routing": {
  "redirects": [
    { "from": "/old-path", "to": "/new-path" },
    { "from": "/old-path/:wildcard", "to": "/new-path" },
    { "from": "/old-path/:pathMatch(.*)*", "to": "/new-path" }
  ]
}

Path patterns:

json
"routing": {
  "guidePathPattern": "/docs/:slug",
  "referencePathPattern": "/api/:slug"
}

assetsDir

Relative path to assets folder. Assets are served from site root.

json
"assetsDir": "docs/assets"

In Markdown: ![Image](/screenshot.png) or ![Image](../assets/screenshot.png).

In siteConfig.head: use full path relative to config root for scripts/styles; root-relative for links.


Migration from Docs 1.0

Docs 1.0 used guides and references arrays. Docs 2.0 uses navigation.routes.

Upgrade:

bash
npx @scalar/cli project upgrade

Check result:

bash
npx @scalar/cli project preview

CLI Commands

CommandDescription
npx @scalar/cli project initCreate scalar.config.json
npx @scalar/cli project check-configValidate config
npx @scalar/cli project previewLocal preview (port 7970)
npx @scalar/cli project publishPublish from local files
npx @scalar/cli project publish --githubPublish from linked GitHub repo
npx @scalar/cli project upgradeMigrate from Docs 1.0

Versions

Use versions instead of navigation to create multi-version documentation.

A version with the key default is required — it is the version shown by default. Additional versions (for example v1) can use any identifier and appear in the version selector. Inside each version's routes, wrap pages in a top-level group so they render correctly in the sidebar.

json
{
  "scalar": "2.0.0",
  "versions": {
    "default": {
      "title": "Version 2.0",
      "routes": {
        "/": {
          "type": "group",
          "title": "Documentation",
          "children": {
            "/": { "type": "page", "title": "Intro", "filepath": "docs/v2/intro.md" },
            "/api": { "type": "openapi", "title": "API", "filepath": "docs/v2/openapi.yaml" }
          }
        }
      }
    },
    "v1": {
      "title": "Version 1.0",
      "routes": {
        "/": {
          "type": "group",
          "title": "Documentation",
          "children": {
            "/": { "type": "page", "title": "Intro", "filepath": "docs/v1/intro.md" },
            "/api": { "type": "openapi", "title": "API", "filepath": "docs/v1/openapi.yaml" }
          }
        }
      }
    }
  }
}

Each version entry supports: title, routes (required), header, sidebar, tabs.


Common Patterns

Multi-project on same domain: Same customDomain or subdomain, different subpath per repo.

MDX: Use .mdx extension in filepath; same structure as Markdown pages.

Hide TOC on a page: "layout": { "toc": false } on that route.

API Reference auth: Add config under the openapi route with authentication (same options as API Reference config).

Custom domain DNS: CNAME host docs → dns.scalar.com (DNS-only, no proxy).


References

© scalar, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/scalar-docs of scalar/scalar.

Open the folder on GitHubat commit c1b8103

Compare with similar skills

Scalar Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Scalar Docs compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Scalar Docs this skillscalar/scalar16k—~3.6kAutomated safety check: PassMIT
ToolJet Marketplace Plugin BuilderToolJet/ToolJet41k—~2.1kAutomated safety check: PassAGPL-3.0
Step Partsearthtojake/text-to-cad19k1 repos~1.5kAutomated safety check: PassMIT
OpenAPI to MCP Servermcp-use/mcp-use11k—~5.2kAutomated safety check: PassApache-2.0
Use Yaakmountain-loop/yaak19k—~1.9kAutomated safety check: PassMIT
API DesignerJeffallan/claude-skills12k1 repos~2kAutomated safety check: PassMIT

Similar skills

  • Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.

    41k GitHub stars~2.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Step Parts

    earthtojake/text-to-cad

    Find, evaluate, and download common purchasable CAD parts from step.parts, including named off-the-shelf actuators, servos, motors, electronics boards, connectors, screws, bolts, nuts, washers…

    19k GitHub starsUsed in 1 repo~1.5k tokens
    Backend & APIsAuto-check passed
  • OpenAPI to MCP Server

    mcp-use/mcp-use

    Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.

    11k GitHub stars~5.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • Use Yaak

    mountain-loop/yaak

    A skill your agent uses when the user mentions Yaak, a Yaak workspace, or the yaak command, or asks to call, hit, or smoke test HTTP/REST endpoints, save or organize API requests for reuse or manual…

    19k GitHub stars~1.9k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • API Designer

    Jeffallan/claude-skills

    Designs REST and GraphQL APIs from resource modeling to an OpenAPI 3.1 contract, with versioning, pagination and RFC 7807 error handling.

    12k GitHub starsUsed in 1 repo~2k tokens
    Backend & APIsAuto-check passed
  • CLI Creator

    huangruiteng/CS-Notes

    Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script.

    4k GitHub starsUsed in 2 repos~2.7k tokens
    Backend & APIsAuto-check passed

More from scalar/scalar

  • Scalar's design system — design tokens, theming (@scalar/themes), CSS variables, and the @scalar/components library.

    16k GitHub stars~2.7k tokensUpdated today
    Auto-check passed
  • Minimal starter runbook for cloud agents to install dependencies, run packages, execute tests, and troubleshoot the Scalar monorepo quickly.

    16k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Mock Server

    scalar/scalar

    Build, customize, and troubleshoot OpenAPI mock servers with @scalar/mock-server, including x-handler, x-seed, authentication, and Docker.

    16k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Openapi Glossary

    scalar/scalar

    Use consistent OpenAPI terminology and definitions when writing documentation, educational material, and tooling guidance.

    16k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Typescript

    scalar/scalar

    Write clear, predictable TypeScript and Vue TypeScript code with strong typing, maintainability, and consistent documentation conventions.

    16k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Vue Components

    scalar/scalar

    Build Vue 3 components with TypeScript and Tailwind using clean structure, composable logic, accessibility, and maintainable patterns.

    16k GitHub stars~886 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Scalar Docs

What does Scalar Docs do?

Skill for writing and updating scalar.config.json — Scalar Docs configuration reference for users and LLMs. Scalar Docs is an agent skill from scalar/scalar.json — Scalar Docs configuration reference for users and LLMs.

When should I use Scalar Docs?

Scalar Docs fits situations like: tasks that involve OpenAPI specifications.

How do I install Scalar Docs in Claude Code?

Run `npx skills add scalar/scalar --skill scalar-docs -a claude-code`. Or copy the skill folder (.agents/skills/scalar-docs in scalar/scalar) into .claude/skills/scalar-docs in your project. Claude Code loads it when a task matches its description.

How do I install Scalar Docs in Codex?

Run `npx skills add scalar/scalar --skill scalar-docs -a codex`. Or copy the skill folder (.agents/skills/scalar-docs in scalar/scalar) into .agents/skills/scalar-docs in your project. Codex loads it when a task matches its description.

Can I use Scalar Docs in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add scalar/scalar --skill scalar-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scalar-docs, .gemini/skills/scalar-docs, .github/skills/scalar-docs and .opencode/skills/scalar-docs in your project.

What does Scalar Docs need to run?

Going by SKILL.md and its folder, Scalar Docs needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Scalar Docs access the network?

SKILL.md names 4 domains. In commands or code: github.com and registry.scalar.com; the agent is likely to contact these when it follows the instructions. As links in the text: docs.scalar.com and dashboard.scalar.com. This is read from the text; nothing was executed.

Is Scalar Docs safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Scalar Docs use?

Scalar Docs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Scalar Docs use?

About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Scalar Docs?

Skills that share tags, products or a category with Scalar Docs: ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars), Step Parts (earthtojake/text-to-cad, 19k stars), OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars) and Use Yaak (mountain-loop/yaak, 19k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Scalar Docs?

scalar (a GitHub organization) maintains it in scalar/scalar, which has 16,244 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.

Source: scalar/scalar on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.