Source: https://seerepo.com/r/shikijs/shiki/built
Markdown source: https://seerepo.com/r/shikijs/shiki/built.md
Description: shiki is a TypeScript repo built with Solid, Vue, React, Vite, and Svelte.

# What is shiki built with?

shiki is a TypeScript repo built with Solid, Vue, React, Vite, and Svelte. It makes its content with hast-util-to-html, markdown-exit, markdown-it, markdown-it-async, rehype-stringify, and 9 more and is tested with Vitest. It has 34,016 written lines, with 263 test files.

Read on November 9, 2026, at commit de15fd2.

Repository: https://github.com/shikijs/shiki

## Frontend (packages/cli)

### Interface

- **@shikijs/vscode-textmate**: 1 file

## Support (packages/cli)

### Testing

- **Vitest**: 2 files

### Tools

- **cac**: 1 file

### Other

- **ansis**: 1 file

## Support (packages/codegen)

### Testing

- **Vitest**: 1 file

### Tools

- **cac**: 1 file
- **Prettier**: 1 file

## Support (packages/colorized-brackets)

### Testing

- **Vitest**: 4 files

### Other

- **ansis**: 2 files

## Frontend (packages/core)

### Interface

- **@shikijs/vscode-textmate**: 4 files

## Support (packages/core)

### Content

- **hast-util-to-html**: 1 file

### Testing

- **Vitest**: 8 files

## Frontend (packages/engine-javascript)

### Interface

- **@shikijs/vscode-textmate**: 1 file

## Support (packages/engine-javascript)

### Testing

- **Vitest**: 5 files

### Tools

- **fast-glob**: 1 file

### Other

- **ohash**: 1 file

## Frontend (packages/engine-oniguruma)

### Interface

- **@shikijs/vscode-textmate**: 1 file

## Support (packages/engine-oniguruma)

### Testing

- **Vitest**: 7 files

### Tools

- **vscode-oniguruma**: 1 file

## Frontend (packages/magic-move)

### The base

- **[Solid](https://seerepo.com/uses/solid)**: 4 files
- **[Vue](https://seerepo.com/uses/vue)**: 4 files · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[React](https://seerepo.com/uses/react)**: 3 files · [in packages/magic-move/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/magic-move/playground/package.json)

## Support (packages/magic-move)

### Testing

- **Vitest**: 1 file

### Other

- **diff-match-patch-es**: 2 files
- **ohash**: 1 file

## Frontend (packages/magic-move/playground)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 4 files · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/magic-move/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/magic-move/playground/package.json)
- **[Solid](https://seerepo.com/uses/solid)**: 1 file
- **[Svelte](https://seerepo.com/uses/svelte)**: 1 file

### Styles

- **UnoCSS**: 1 file

## Support (packages/magic-move/playground)

### Other

- **VueUse**: 1 file

## Support (packages/markdown-exit)

### Content

- **markdown-exit**: 2 files

### Testing

- **Vitest**: 2 files

## Support (packages/markdown-it)

### Content

- **[markdown-it](https://seerepo.com/uses/markdown-it)**: 2 files
- **markdown-it-async**: 1 file

### Testing

- **Vitest**: 2 files

## Frontend (packages/monaco)

### Interface

- **@shikijs/vscode-textmate**: 2 files
- **monaco-editor-core**: 2 files

## Support (packages/monaco)

### Testing

- **Vitest**: 1 file

## Frontend (packages/monaco/playground)

### Interface

- **monaco-editor-core**: 1 file

## Frontend (packages/primitive)

### Interface

- **@shikijs/vscode-textmate**: 6 files

## Support (packages/primitive)

### Testing

- **Vitest**: 3 files

## Support (packages/rehype)

### Content

- **[rehype-stringify](https://seerepo.com/uses/rehype-stringify)**: 2 files
- **[remark](https://seerepo.com/uses/remark)**: 2 files
- **[remark-parse](https://seerepo.com/uses/remark-parse)**: 2 files
- **[unified](https://seerepo.com/uses/unified)**: 2 files
- **hast-util-to-string**: 1 file
- **[rehype-raw](https://seerepo.com/uses/rehype-raw)**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Testing

- **Vitest**: 2 files

## Frontend (packages/shiki)

### Interface

- **@shikijs/vscode-textmate**: 1 file

## Support (packages/shiki)

### Content

- **hast-util-to-html**: 1 file

### Testing

- **Vitest**: 18 files

## Frontend (packages/stream)

### The base

- **[React](https://seerepo.com/uses/react)**: 2 files · [in packages/magic-move/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/magic-move/playground/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 2 files · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[Solid](https://seerepo.com/uses/solid)**: 1 file
- **[Svelte](https://seerepo.com/uses/svelte)**: 1 file

## Support (packages/stream)

### Testing

- **Vitest**: 5 files

### Other

- **@antfu/utils**: 2 files

## Frontend (packages/stream/playground)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 4 files · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[React](https://seerepo.com/uses/react)**: 1 file · [in packages/magic-move/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/magic-move/playground/package.json)
- **[Solid](https://seerepo.com/uses/solid)**: 1 file
- **[Svelte](https://seerepo.com/uses/svelte)**: 1 file

### Styles

- **UnoCSS**: 1 file

## Support (packages/stream/playground)

### Other

- **VueUse**: 1 file

## Support (packages/transformers)

### Testing

- **Vitest**: 11 files

## Frontend (packages/twoslash)

### The base

- **[Vue](https://seerepo.com/uses/vue)**: 1 file · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)

## Support (packages/twoslash)

### Content

- **[markdown-it](https://seerepo.com/uses/markdown-it)**: 1 file
- **[unist-util-visit](https://seerepo.com/uses/unist-util-visit)**: 1 file

### Testing

- **Vitest**: 10 files

### Tools

- **twoslash**: 5 files
- **TypeScript**: 2 files

## Frontend (packages/types)

### Interface

- **@shikijs/vscode-textmate**: 3 files

## Frontend (packages/vitepress-twoslash)

### The base

- **[Vite](https://seerepo.com/uses/vite)**: 1 file · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)
- **[Vue](https://seerepo.com/uses/vue)**: 1 file · [in packages/stream/playground/package.json](https://github.com/shikijs/shiki/blob/de15fd2efb709ea4528d894ab857ac145f3dc277/packages/stream/playground/package.json)

### Interface

- **floating-vue**: 1 file

## Support (packages/vitepress-twoslash)

### Content

- **[markdown-it](https://seerepo.com/uses/markdown-it)**: 1 file
- **[mdast-util-from-markdown](https://seerepo.com/uses/mdast-util-from-markdown)**: 1 file
- **[mdast-util-gfm](https://seerepo.com/uses/mdast-util-gfm)**: 1 file
- **mdast-util-to-hast**: 1 file

### Testing

- **Vitest**: 3 files

### Tools

- **twoslash**: 2 files
- **magic-string**: 1 file
- **VitePress**: 1 file

### Other

- **lz-string-es**: 1 file
- **ohash**: 1 file

## Other repos with a similar stack

- [withastro/astro](https://seerepo.com/r/withastro/astro/built): Solid, Vue, React, Vite, Svelte, hast-util-to-html, rehype-stringify, remark, remark-parse, unified, rehype-raw, unist-util-visit · [Compare](https://seerepo.com/compare/shikijs/shiki/vs/withastro/astro)
- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Vite, remark, remark-parse, unified, unist-util-visit, mdast-util-from-markdown, mdast-util-gfm · [Compare](https://seerepo.com/compare/shikijs/shiki/vs/supabase/supabase)
- [nocodb/nocodb](https://seerepo.com/r/nocodb/nocodb/built): Vue, React, UnoCSS, markdown-it, rehype-stringify, remark, remark-parse, unified · [Compare](https://seerepo.com/compare/nocodb/nocodb/vs/shikijs/shiki)
- [CherryHQ/cherry-studio](https://seerepo.com/r/CherryHQ/cherry-studio/built): React, Vite, markdown-it, rehype-stringify, remark-parse, unified, unist-util-visit, mdast-util-from-markdown · [Compare](https://seerepo.com/compare/CherryHQ/cherry-studio/vs/shikijs/shiki)
- [moeru-ai/airi](https://seerepo.com/r/moeru-ai/airi/built): Vue, Vite, UnoCSS, rehype-stringify, remark, remark-parse, unified, unist-util-visit · [Compare](https://seerepo.com/compare/moeru-ai/airi/vs/shikijs/shiki)
- [RSSNext/Folo](https://seerepo.com/r/RSSNext/Folo/built): React, Vite, rehype-stringify, remark, remark-parse, unified, rehype-raw, unist-util-visit · [Compare](https://seerepo.com/compare/RSSNext/Folo/vs/shikijs/shiki)

## Frequently asked questions

### What language is shiki written in?

shiki is written in TypeScript, with 34,016 written lines.

### What framework does shiki use?

shiki is built with Solid, Vue, React, Vite, and Svelte.

### Does shiki have tests?

Yes. shiki has 263 test files and is tested with Vitest.

### Which repos have a stack like shiki's?

The ones that share most of its stack: withastro/astro, supabase/supabase, and nocodb/nocodb.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
