> ## Documentation Index
> Fetch the complete documentation index at: https://koharu.rs/llms.txt
> Use this file to discover all available pages before exploring further.

# Write and publish docs

> Preview Mintlify, maintain translated MDX, and connect the repository for publishing.

The documentation is the `@koharu/docs` Mintlify workspace in `packages/docs/`. Bun manages its dependencies through the repository's root `bun.lock`.

<Steps>
  <Step title="Install the docs tooling">
    Use Node.js 24 LTS and Bun 1.3.14 or later. From the repository root:

    ```bash theme={null}
    bun install --frozen-lockfile --ignore-scripts
    ```
  </Step>

  <Step title="Preview">
    ```bash theme={null}
    bun run docs
    ```

    Open `http://localhost:3001`. The preview updates when MDX or configuration changes.
  </Step>
</Steps>

## Author native MDX

Every page needs a `title` and `description` in frontmatter. Mintlify renders article titles, so do not repeat them as an H1. The landing pages use Almond's native `frame` mode and provide their own single H1.

Use **Steps** for ordered tasks, **Tabs** for platform or model choices, **Note**, **Tip**, and **Warning** for relevant callouts, **Cards** for next actions, and **Accordions** for symptom-specific help. Keep reference tables and fenced Mermaid diagrams readable without custom scripts or CSS.

Use root-relative internal links with no file extension, such as `/guides/export`. Shared images live outside the locale folders and need descriptive alt text.

## Keep translations aligned

English is the default language and lives directly in `packages/docs/`. Japanese and Simplified Chinese live in `ja/` and `zh/`, with the same filenames and directory structure as English. Maintain matching page slugs, instructions, examples, and technical coverage in all three languages. Translate headings, descriptions, component labels, navigation, and image descriptions as well as prose.

`packages/docs/docs.json` owns themes and navigation. Define each language's `groups` under `navigation.languages`, and keep English marked with `default: true`. Add a page to every language's navigation when it is introduced, using unprefixed paths for English and language-prefixed paths for translations. Each page path must belong to only one language. See Mintlify's [internationalization guide](https://www.mintlify.com/docs/guides/internationalization) for the structure. The site uses Mintlify's language switcher and does not keep old Zensical routes or redirects.

## Connect publishing

In the Mintlify dashboard, connect `koharu-rs/koharu` and select the production branch. In Git Settings, enable **docs.json is in a subdirectory** and enter `/packages/docs` without a trailing slash. Configure `koharu.rs` as the custom domain and follow the DNS records shown by Mintlify.

<Note>
  Publishing and custom-domain activation require the Mintlify GitHub integration and domain
  configuration.
</Note>

See Mintlify's [monorepo setup](https://www.mintlify.com/docs/deploy/monorepo) and [custom domains](https://www.mintlify.com/docs/customize/custom-domain) for dashboard instructions.


## Related topics

- [Scene and storage](/development/scene.md)
- [Koharu documentation](/index.md)
- [Work with Koharu Agent](/agent/projects.md)
- [Development setup](/development/setup.md)
- [Troubleshooting](/reference/troubleshooting.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.