diff --git a/.gitignore b/.gitignore
index e6449a44..82274354 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,7 @@ Thumbs.db
# Node
node_modules/
+.worktrees/
docs/.astro/
docs/.wrangler/
docs/dist/
diff --git a/README.md b/README.md
index a4723299..b373e1d7 100644
--- a/README.md
+++ b/README.md
@@ -1,235 +1,71 @@
# AnyCap
-
[](https://www.npmjs.com/package/@anycap/cli)
[](LICENSE)
[](https://github.com/anycap-ai/anycap/stargazers)
[](https://skills.sh/anycap-ai/anycap)
-> **The execution layer for coding agents.**
-> Give Claude Code, Cursor, Codex, and any client with local stdio MCP support real-world
-> capabilities — image, video, vision, music, web search, and publishing — inside the
-> agents you already use.
-> Connect through an Agent Skill or the built-in local MCP server.
+> **The capability runtime for AI agents.**
+>
+> Give coding agents a single CLI, Agent Skill, and local MCP server for creating media,
+> understanding files, researching the live web, and delivering results people can use.
-
+
----
+## Start here
-## Quick start (30 seconds)
-
-Paste this to Claude Code, Cursor, Codex, or any agent that can run a shell:
+Give this to Claude Code, Codex, Cursor, or another agent that can run shell commands:
```text
-Read https://raw.githubusercontent.com/anycap-ai/anycap/main/llms.txt and follow the
-instructions to install the AnyCap CLI and skill. If you can't access the URL, run:
- 1. curl -fsSL https://anycap.ai/install.sh | sh
- 2. npx -y skills add anycap-ai/anycap -s '*' -g -y
- 3. anycap login
- 4. anycap status
+Read https://raw.githubusercontent.com/anycap-ai/anycap/main/llms.txt and follow its
+instructions to install and configure AnyCap.
```
-That's it. The agent installs the CLI, installs the skill, logs you in, and verifies the
-connection — then every capability below becomes a single sentence. Prefer native MCP
-tool discovery? Jump to [Connect via MCP](#connect-via-mcp). Prefer to do it by hand?
-Jump to [Manual install](#manual-install).
-
-## Contents
-
-- [What this fixes](#what-this-fixes)
-- [What your agent can do](#what-your-agent-can-do)
-- [Install by talking to your agent](#install-by-talking-to-your-agent)
-- [Skills and MCP, not SDK glue](#skills-and-mcp-not-sdk-glue)
-- [Manual install](#manual-install)
-- [Connect via MCP](#connect-via-mcp)
-- [Capabilities](#capabilities)
-- [Works with](#works-with)
-- [FAQ & troubleshooting](#faq--troubleshooting)
-- [Links](#links)
-- [License](#license)
-
----
-
-## What this fixes
-
-Your coding agent can reason and write code. It **still can't** ship a meme, generate a
-hero image, read a screenshot a user dropped in, search the live web, or publish a
-landing page.
-
-| Without AnyCap | With AnyCap |
-| --------------------------------------- | --------------------------------------------- |
-| "I can't generate images." | One command → a finished asset. |
-| "I can't see this screenshot." | Reads images, video, and audio. |
-| "My knowledge has a cutoff." | Live web search with citations. |
-| "You'll need to deploy that yourself." | Ships a hosted page and returns the URL. |
-
-AnyCap is the missing execution layer — multimodal, web, and delivery behind **one CLI
-and one auth**.
-
-## What your agent can do
-
-### 1. Make a meme end-to-end
-
-Agent drafts the caption, generates the image, revises the visual, then returns a
-shareable link.
-
-
-
-```bash
-anycap image generate --prompt "cat in a tiny chef hat, meme caption 'ship it'" \
- --model nano-banana-2 -o meme.png
-anycap image generate --prompt "make the caption bigger and yellow" \
- --model nano-banana-2 --mode image-to-image --param images=./meme.png -o meme-v2.png
-anycap drive upload meme-v2.png --parent-path /memes
-anycap drive share --src-path /memes/meme-v2.png
-```
-
-### 2. Turn a prompt into a hosted page
-
-Agent writes the copy, generates hero visuals, and deploys a live URL.
-
-
-
-```bash
-anycap image generate --prompt "abstract product hero, soft gradient" \
- --model nano-banana-2 -o ./dist/hero.png
-anycap page deploy ./dist --name "launch-page" --publish
-```
-
-### 3. Review a screenshot with a human in the loop
-
-Agent opens the annotation UI, the human marks issues, the agent reads the feedback and
-revises.
-
-
-
-```bash
-anycap annotate ./screenshot.png --no-wait
-anycap annotate poll --session ann_xxxx
-anycap actions image-read --file ./screenshot-annotated.png \
- --instruction "List every change requested by the annotations"
-```
-
-## Install by talking to your agent
-
-AnyCap installs itself in plain English. No package-manager dance, no doc spelunking, no
-version pinning. Hand the [Quick start](#quick-start-30-seconds) paragraph to your agent —
-it reads `llms.txt`, installs the CLI, installs the skill, opens the browser to log you
-in, and verifies the connection.
-
-After that one paste, everything else is just conversation. The skill teaches the agent
-the full command surface, so future actions become one sentence:
-
-- **"Upgrade AnyCap and check my status."**
-- **"Generate a hero image for the launch page and deploy it."**
-- **"Search the web for the latest Cursor changelog and summarize."**
-
-The agent picks the right capability, runs it, and hands you the result. You never touch a
-flag unless you want to.
-
-## Skills and MCP, not SDK glue
-
-Most tools ship an SDK and ask you to wire it in. AnyCap gives agents two integration
-paths on top of the same CLI runtime:
-
-- **Agent Skill.** The agent reads `SKILL.md`, learns complete workflows, and invokes the
- CLI from plain-English requests. The same skill works across Claude Code, Cursor,
- Codex, and [40+ agents](https://skills.sh).
-- **MCP server.** Any MCP host can discover typed AnyCap tools through the built-in local
- stdio server. No separate package or service is required.
-- **One auth, one CLI.** Both paths share the same login, configuration, HTTP client, and
- local media handling.
-- **No glue code.** You do not import a library, manage API objects, or maintain a custom
- tool wrapper.
-
-## Manual install
-
-### 1. Install the CLI
-
-macOS / Linux / Windows (Git Bash):
+If your agent cannot reach that URL, use the manual setup below.
```bash
+# Install the CLI (macOS, Linux, or Windows through Git Bash)
curl -fsSL https://anycap.ai/install.sh | sh
-```
-
-npm (all platforms):
-
-```bash
-npm install -g @anycap/cli
-```
-
-Or grab a binary from [GitHub Releases](https://github.com/anycap-ai/anycap/releases).
-
-### 2. Install the skill
-Works with Claude Code, Cursor, Windsurf, OpenCode, and [40+ agents](https://skills.sh):
-
-```bash
+# Install the AnyCap Agent Skill
npx -y skills add anycap-ai/anycap -s '*' -g -y
-```
-
-
-More ways to install the skill
-
-```bash
-# Via AnyCap CLI (installs complete skill directories and references)
-anycap skill install --target ~/.agents/skills/
-# Check if the CLI skill is up to date
-anycap skill check --target ~/.agents/skills/anycap-cli/SKILL.md
-```
-
-
-
-### 3. Verify
-
-```bash
+# Authenticate once, then confirm the runtime is ready
anycap login
anycap status
```
-## Connect via MCP
+The binary installer is the recommended path. If your environment already uses Node.js,
+you can instead run `npm install -g @anycap/cli`. Platform binaries are also available
+from [GitHub Releases](https://github.com/anycap-ai/anycap/releases).
-AnyCap CLI v0.5.0 includes a local [Model Context Protocol](https://modelcontextprotocol.io/)
-server. It runs over stdio inside the existing `anycap` binary, exposes 23 typed tools,
-and shares the CLI's credentials and configuration. It has been verified with MCP
-protocol version `2025-06-18`. There is no separate MCP package or background service to
-install.
+## Choose an integration
-First verify that your installed CLI includes the server:
+| Integration | Use it when | Entry point |
+| --- | --- | --- |
+| **Agent Skill** | You want an agent to choose the right workflow from a natural-language request. | [`skills/anycap-cli/SKILL.md`](skills/anycap-cli/SKILL.md) |
+| **Local stdio MCP** | Your agent host needs typed tool discovery. | `anycap mcp` |
+| **CLI** | You want shell automation or direct control. | `anycap ` |
-```bash
-anycap mcp --help
-```
+All three use the same installed runtime and authentication state. The Skill and MCP
+server can be used together.
-If the command is missing, run `anycap update` and check again.
+### Connect through MCP
-### Claude Code
-
-Add AnyCap to the current project using Claude's machine-local scope and authorize local
-media under that project:
+First confirm that the installed CLI exposes the server:
```bash
-claude mcp add --scope local anycap -- anycap mcp --allow-root "$PWD"
+anycap mcp --help
```
-Local scope avoids committing a machine-specific absolute path to the shared project
-configuration.
-
-### Codex
-
-The Codex CLI command creates a global server definition. Omit a permanent absolute root
-and let each project session provide client roots or use the server working-directory
-fallback:
+For Codex, add the local server definition:
```bash
codex mcp add anycap -- anycap mcp
```
-### Cursor and other MCP clients
-
-Add this stdio server to your client's MCP configuration. Replace the example path with
-an absolute directory containing media that AnyCap may read:
+For a generic stdio MCP client, configure `anycap mcp`. Add a narrowly scoped
+`--allow-root` only when the server needs to access local media:
```json
{
@@ -237,184 +73,76 @@ an absolute directory containing media that AnyCap may read:
"anycap": {
"type": "stdio",
"command": "anycap",
- "args": [
- "mcp",
- "--allow-root",
- "/absolute/path/to/media"
- ]
+ "args": ["mcp", "--allow-root", "/absolute/path/to/media"]
}
}
}
```
-`--allow-root` is optional and repeatable. Effective local access is the union of these
-flags, `ANYCAP_MCP_FILE_ROOTS`, and roots advertised by the MCP client; if none are
-provided, the server falls back to its working directory. URL-based calls do not need
-local access. Keep every configured root as narrow as possible.
-
-Existing `anycap login` credentials are picked up automatically, including logins
-completed after the MCP process starts. MCP clients can also authenticate without
-leaving the session through `anycap_auth_status`, `anycap_login`, and
-`anycap_login_poll`. Authentication never opens a browser at server startup.
-
-The 23 tools cover:
-
-| Group | MCP tools |
-| ----- | --------- |
-| Authentication | Status, device login, login polling, and logout |
-| Discovery | AnyCap status, model listing, and model schemas |
-| Image | Generate, edit, upscale, and understand images |
-| Video | Generate and understand videos |
-| Music and audio | Generate music and analyze or transcribe audio |
-| Web | Search the live web and crawl pages to Markdown |
-| Drive | List and resolve files and folders (read-only) |
-| Page | Inspect sites and versions (read-only) |
-
-For the complete tool inventory, authentication flow, and local image-to-video example,
-see [the MCP reference](skills/anycap-cli/references/cli-reference.md#local-stdio-mcp).
-
-## Capabilities
-
-| Capability | Command | What agents do with it |
-| ----------------------------- | -------------------------------------------------------------------- | ----------------------------------------------- |
-| Image generation / edit | `anycap image generate` (`--mode image-to-image` for edits) | Hero art, meme assets, illustration, photo edit |
-| Image / video / audio reading | `anycap actions image-read` / `video-read` / `audio-read` | Screenshot review, meeting transcripts, QA |
-| Video generation | `anycap video generate` | Demo clips, animated assets |
-| Music generation | `anycap music generate` | Jingles, soundtracks |
-| Web search | `anycap search --query` (general) / `--prompt` (grounded with cites) | Live answers, research |
-| Web crawl | `anycap crawl ` | Any URL into clean Markdown |
-| Annotate | `anycap annotate` | Human-in-the-loop visual feedback |
-| Draw | `anycap draw` | Live whiteboard / Mermaid diagrams |
-| Drive | `anycap drive upload` / `share` | Shareable file links |
-| Page | `anycap page deploy` | Hosted static pages |
-| Download | `anycap download` | Save any remote file |
-
-> **Coming soon:** TTS / voice synthesis.
-
-## Models
-
-AnyCap's model lineup evolves quickly, so the **authoritative, always-current list lives
-in the CLI** — run `anycap models` to see exactly what your account can use:
-
-```bash
-anycap image models # image generation / edit
-anycap video models # video generation
-anycap music models # music generation
-```
-
-Inspect a single model's modes and parameter schema before calling it:
-
-```bash
-anycap image models nano-banana-2 # modes + operations
-anycap image models nano-banana-2 schema --mode text-to-image # parameter schema
-```
-
-The tables below reflect the models available in CLI **v0.3.6** — newer versions add and
-retire models, so treat the CLI output as the source of truth.
-
-### Image generation / edit
-
-| Model | Name | Modes |
-| ------------------ | --------------------- | --------------------------------- |
-| `nano-banana-2` | Nano Banana 2 | text-to-image, image-to-image |
-| `nano-banana-pro` | Nano Banana Pro | text-to-image, image-to-image |
-| `gpt-image-2` | GPT Image 2 | text-to-image, image-to-image |
-| `flux-kontext-max` | FLUX.1 Kontext Max | text-to-image, image-to-image |
-| `qwen-image` | Qwen Image | text-to-image, image-to-image |
-| `seedream-4.5` | Seedream 4.5 | text-to-image, image-to-image |
-| `seedream-5` | Seedream 5 | text-to-image, image-to-image |
-
-### Video generation
-
-| Model | Name | Modes |
-| ------------------- | ---------------- | -------------------------------- |
-| `veo-3.1` | Veo 3.1 | text-to-video, image-to-video |
-| `veo-3.1-fast` | Veo 3.1 Fast | text-to-video, image-to-video |
-| `sora-2-pro` | Sora 2 Pro | text-to-video, image-to-video |
-| `kling-3.0` | Kling 3.0 | text-to-video, image-to-video |
-| `kling-o1` | Kling O1 | image-to-video |
-| `hailuo-2.3` | Hailuo 2.3 | text-to-video, image-to-video |
-| `seedance-1.5-pro` | Seedance 1.5 Pro | text-to-video, image-to-video |
-| `seedance-2` | Seedance 2.0 | text-to-video, image-to-video |
-| `seedance-2-fast` | Seedance 2.0 Fast| text-to-video, image-to-video |
-
-### Music generation
-
-| Model | Name | Modes |
-| ------------------- | ----------------- | -------------- |
-| `suno-v5` | Suno V5 | text-to-music |
-| `suno-v5.5` | Suno V5.5 | text-to-music |
-| `mureka-v8` | Mureka V8 | text-to-music |
-| `elevanlabs-music` | ElevenLabs Music | text-to-music |
+Do not commit personal absolute paths into shared project configuration. Read the
+[MCP setup guide](https://docs.anyware.ai/getting-started/mcp/) and
+[security guide](https://docs.anyware.ai/reference/security/) before granting local
+file access.
-> **Reading / understanding** (`anycap actions image-read` / `video-read` / `audio-read`)
-> automatically selects the best available model. Pass `--model` only when you need a
-> specific one.
+## What agents can do
-## Works with
+| Area | Examples |
+| --- | --- |
+| **Create** | Generate and edit images, generate video, compose music, and create audio scenes. |
+| **Understand** | Read screenshots, compare images, summarize video, and transcribe or analyze audio. |
+| **Research** | Search the live web and crawl pages into Markdown. |
+| **Collaborate** | Gather visual annotations and work with shared drawing surfaces. |
+| **Deliver** | Upload and share files, publish static sites, and create project snapshots. |
-Claude Code · Cursor · Codex · Windsurf · OpenCode · 40+ agents via
-[skills.sh](https://skills.sh) · any client that supports local stdio MCP servers.
+For a first end-to-end workflow, see [generate and share an image](https://docs.anyware.ai/guides/generate-and-share-image/).
+Other task-oriented guides cover [image-to-video](https://docs.anyware.ai/guides/image-to-video/),
+[human feedback](https://docs.anyware.ai/guides/human-feedback/),
+[web research](https://docs.anyware.ai/guides/web-research/), and
+[static-site publishing](https://docs.anyware.ai/guides/publish-site/).
-## FAQ & troubleshooting
+## Discover live capabilities
-
-Do I need an API key for each capability?
+Model availability and input schemas change. Query the installed CLI instead of copying
+model IDs or parameters from an old example:
-No. One `anycap login` covers every capability — image, video, vision, music, web, and
-publishing share a single auth. The CLI and MCP server use the same credentials.
-
-
-
-Does the MCP server upload every local file?
-
-No. Only local media explicitly passed to a compatible tool can be uploaded, and its
-canonical path must be inside an effective allowed root. Configure repeatable
-`--allow-root` flags or client-advertised roots to control access. URL-based inputs do
-not require local filesystem access.
-
-
-
-The agent says it can't reach llms.txt.
-
-Run the four manual commands from [Quick start](#quick-start-30-seconds), or follow
-[Manual install](#manual-install).
-
+```bash
+# List models available to your account
+anycap image models
+anycap video models
+anycap music models
-
-The skill isn't showing up in my agent.
+# Inspect the current modes and schema for a selected model
+anycap image models
+anycap image models schema --mode
+```
-Confirm it installed into your agent's skills directory, then re-check:
+Run `anycap --help` at any level to inspect commands and options:
```bash
-anycap skill check --target ~/.agents/skills/anycap-cli/SKILL.md
+anycap --help
+anycap image --help
+anycap image generate --help
```
-Reload your agent so it re-reads the skills directory.
-
+## Documentation and support
-
-How do I update?
+- [Documentation](https://docs.anyware.ai) — quickstart, capability guides, and reference material.
+- [CLI reference](https://docs.anyware.ai/reference/cli/) — command groups, output conventions, and discovery.
+- [MCP tool reference](https://docs.anyware.ai/reference/mcp-tools/) — current tools and read/write boundaries.
+- [Authentication and configuration](https://docs.anyware.ai/getting-started/authentication/) — interactive, headless, and API-key workflows.
+- [Troubleshooting](https://docs.anyware.ai/getting-started/troubleshooting/) — installation and runtime diagnostics.
+- [`llms.txt`](llms.txt) — concise installation and usage instructions for agents.
+- [Skills directory](https://skills.sh/anycap-ai/anycap) — install the Agent Skills collection.
-Tell your agent **"Upgrade AnyCap and check my status,"** or re-run the install script and
-`npx -y skills add anycap-ai/anycap -s '*' -g -y`.
-
+## Updating
-
-Which platforms are supported?
+The CLI checks for updates during normal use. Update it explicitly when needed:
-macOS, Linux, and Windows (via Git Bash). Install through the script, npm, or a binary
-from [Releases](https://github.com/anycap-ai/anycap/releases).
-
-
-## Links
-
-- [Documentation](https://docs.anyware.ai) — Guides and reference
-- [llms.txt](llms.txt) — Give this to your agent
-- [Skill file](skills/anycap-cli/SKILL.md) — Full capability documentation
-- [GitHub Releases](https://github.com/anycap-ai/anycap/releases) — CLI binaries
-- [skills.sh](https://skills.sh/anycap-ai/anycap) — Skills directory listing
-- [Website](https://anycap.ai)
+```bash
+anycap update
+npx -y skills update
+anycap status
+```
## License
diff --git a/docs/astro.config.mjs b/docs/astro.config.mjs
index d52fa5a1..cf4a21e1 100644
--- a/docs/astro.config.mjs
+++ b/docs/astro.config.mjs
@@ -25,9 +25,6 @@ export default defineConfig({
href: 'https://github.com/anycap-ai/anycap',
},
],
- editLink: {
- baseUrl: 'https://github.com/anycap-ai/anycap/edit/main/docs/',
- },
lastUpdated: true,
disable404Route: true,
customCss: ['./src/styles/custom.css'],
@@ -35,7 +32,7 @@ export default defineConfig({
Head: './src/components/Head.astro',
},
head: [
- { tag: 'meta', attrs: { name: 'theme-color', content: '#f9faf5' } },
+ { tag: 'meta', attrs: { name: 'theme-color', content: '#f4f5f0' } },
{ tag: 'meta', attrs: { name: 'color-scheme', content: 'light dark' } },
{
tag: 'meta',
@@ -74,11 +71,13 @@ export default defineConfig({
label: 'Capabilities',
items: [
{ label: 'Overview', link: '/capabilities/' },
+ { label: 'Models', link: '/capabilities/models/' },
{ label: 'Image', link: '/capabilities/image/' },
{ label: 'Video', link: '/capabilities/video/' },
+ { label: 'Audio', link: '/capabilities/audio/' },
+ { label: 'Music', link: '/capabilities/music/' },
{ label: 'Media understanding', link: '/capabilities/media-understanding/' },
{ label: 'Web search and crawl', link: '/capabilities/web/' },
- { label: 'Music and audio', link: '/capabilities/audio/' },
{ label: 'Drive and Page', link: '/capabilities/delivery/' },
{ label: 'Annotate and Draw', link: '/capabilities/collaboration/' },
{ label: 'Snapshots', link: '/capabilities/snapshots/' },
diff --git a/docs/package-lock.json b/docs/package-lock.json
index d00d46b1..a9a1cb88 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -10,6 +10,8 @@
"dependencies": {
"@astrojs/sitemap": "3.7.3",
"@astrojs/starlight": "0.41.3",
+ "@fontsource-variable/inter": "^5.2.8",
+ "@fontsource/space-mono": "^5.2.6",
"astro": "7.1.3"
},
"devDependencies": {
@@ -1365,6 +1367,24 @@
"@expressive-code/core": "^0.44.1"
}
},
+ "node_modules/@fontsource-variable/inter": {
+ "version": "5.2.8",
+ "resolved": "https://registry.npmjs.org/@fontsource-variable/inter/-/inter-5.2.8.tgz",
+ "integrity": "sha512-kOfP2D+ykbcX/P3IFnokOhVRNoTozo5/JxhAIVYLpea/UBmCQ/YWPBfWIDuBImXX/15KH+eKh4xpEUyS2sQQGQ==",
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
+ }
+ },
+ "node_modules/@fontsource/space-mono": {
+ "version": "5.2.6",
+ "resolved": "https://registry.npmjs.org/@fontsource/space-mono/-/space-mono-5.2.6.tgz",
+ "integrity": "sha512-3IOUpd5neu52Ewt7LUyiTHCv31oMq2+rmOeIUlCjGSIBwIY+TswZwCTVKjzhWkr+TEuwdWZeKcjAEDuwmTn2Pw==",
+ "license": "OFL-1.1",
+ "funding": {
+ "url": "https://github.com/sponsors/ayuhito"
+ }
+ },
"node_modules/@img/colour": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.1.0.tgz",
@@ -1382,6 +1402,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1404,6 +1425,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1423,6 +1445,7 @@
"version": "0.35.3",
"resolved": "https://registry.npmjs.org/@img/sharp-freebsd-wasm32/-/sharp-freebsd-wasm32-0.35.3.tgz",
"integrity": "sha512-lUxcqWIj2wMQ9BrwNjngcr1gWUr5xgaGThBRqPPalIC2n67Cqj1uPh8NnA/ZhAg8hUbKl+kVHKwgUIwe6ZYPrg==",
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1445,6 +1468,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1461,6 +1485,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1477,6 +1502,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1493,6 +1519,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1509,6 +1536,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1525,6 +1553,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1541,6 +1570,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1557,6 +1587,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1573,6 +1604,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1589,6 +1621,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1605,6 +1638,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1627,6 +1661,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1649,6 +1684,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1671,6 +1707,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1693,6 +1730,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1715,6 +1753,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1737,6 +1776,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1759,6 +1799,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -1778,6 +1819,7 @@
"version": "0.35.3",
"resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.35.3.tgz",
"integrity": "sha512-cZ0XkcYGpHZkqW6iCkqTcmUC0CD9DhD5d/qeZlZkfRBn6GnHniZXLUo5+9xw8Iv76YE6LQFN9YNBlKREcCG76w==",
+ "dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT",
"optional": true,
"dependencies": {
@@ -1797,6 +1839,7 @@
"cpu": [
"wasm32"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
@@ -1816,6 +1859,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1835,6 +1879,7 @@
"cpu": [
"ia32"
],
+ "dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
@@ -1854,6 +1899,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0 AND LGPL-3.0-or-later",
"optional": true,
"os": [
diff --git a/docs/package.json b/docs/package.json
index c9e40760..5651c800 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -18,6 +18,8 @@
"dependencies": {
"@astrojs/sitemap": "3.7.3",
"@astrojs/starlight": "0.41.3",
+ "@fontsource-variable/inter": "^5.2.8",
+ "@fontsource/space-mono": "^5.2.6",
"astro": "7.1.3"
},
"devDependencies": {
diff --git a/docs/public/assets/geist-pixel-square.woff2 b/docs/public/assets/geist-pixel-square.woff2
new file mode 100644
index 00000000..232cae2c
Binary files /dev/null and b/docs/public/assets/geist-pixel-square.woff2 differ
diff --git a/docs/public/favicon.svg b/docs/public/favicon.svg
index 6c0ce84a..e9254967 100644
--- a/docs/public/favicon.svg
+++ b/docs/public/favicon.svg
@@ -1,5 +1,13 @@
-