{"id":50831391,"url":"https://github.com/barewalker/yuhitsu","last_synced_at":"2026-06-13T23:30:53.722Z","repository":{"id":356001691,"uuid":"1228471533","full_name":"barewalker/yuhitsu","owner":"barewalker","description":" local desktop GUI editor for Typst, with first-class Japanese typography support.","archived":false,"fork":false,"pushed_at":"2026-05-06T08:14:50.000Z","size":1478,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T08:39:29.173Z","etag":null,"topics":["codemirror","desktop-app","editor","gui","japanese","japanese-typography","tauri","tauri-app","typesetting","typst","typst-editor"],"latest_commit_sha":null,"homepage":"","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/barewalker.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-04T03:46:45.000Z","updated_at":"2026-05-06T08:14:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/barewalker/yuhitsu","commit_stats":null,"previous_names":["barewalker/yuhitsu"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/barewalker/yuhitsu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barewalker%2Fyuhitsu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barewalker%2Fyuhitsu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barewalker%2Fyuhitsu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barewalker%2Fyuhitsu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/barewalker","download_url":"https://codeload.github.com/barewalker/yuhitsu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/barewalker%2Fyuhitsu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34304628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codemirror","desktop-app","editor","gui","japanese","japanese-typography","tauri","tauri-app","typesetting","typst","typst-editor"],"created_at":"2026-06-13T23:30:53.047Z","updated_at":"2026-06-13T23:30:53.717Z","avatar_url":"https://github.com/barewalker.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yuhitsu (右筆)\n\n**A local desktop GUI editor for [Typst](https://typst.app), with first-class Japanese typography support.**\n\n\u003e 🇯🇵 [日本語版はこちら](./README.md) / Japanese version\n\n\u003e 🚧 **Currently in development toward v0.1.0-alpha.** Early feedback is welcome, but not recommended for production use yet.\n\n---\n\n## What is this?\n\nYuhitsu is a desktop GUI editor for the [Typst](https://typst.app) typesetting system. It targets users who would benefit from Typst's quality but find IDE-style tools (VS Code + Tinymist) intimidating — office workers, business writers, technical authors who don't live in the terminal.\n\nThe name comes from **Yūhitsu** (右筆), the title of professional scribes who drafted and copied official documents for daimyō and shoguns from the Muromachi to Edo periods of Japan.\n\n## Why?\n\nTypst is gaining traction as a modern LaTeX alternative, but the existing tooling has gaps:\n\n| Tool | OSS | Local | GUI | First-class Japanese |\n|---|---|---|---|---|\n| Typst (web app) | ❌ | ❌ | ✅ | ❌ |\n| Typstify | ❌ | ✅ | ✅ | ❌ |\n| Typstudio | ✅ | ✅ | ✅ | ❌ (long-stalled) |\n| VS Code + Tinymist | ✅ | ✅ | ❌ (IDE) | ❌ |\n\nYuhitsu fills the **OSS × Local × GUI × first-class Japanese × practical** quadrant. It is a general-purpose Typst editor that happens to invest heavily in the parts most other editors neglect: Japanese typography, ergonomic templates for business documents, and a UI that doesn't assume you live in a terminal.\n\n## Features (v0.1 alpha)\n\n### Typst editor\n- **Live preview** — even unsaved buffer changes reflect in real time (via `tinymist preview`)\n- **LSP integration** — completion, diagnostics, hover docs (via `tinymist lsp`)\n- **Syntax highlighting** for Typst\n- **PDF export** — Ctrl+E\n- **Find / Replace** — Ctrl+F / Ctrl+H, regex / case / whole-word\n- **Insert helpers** — bold / italic / heading / list / math / code / link / footnote / quote / image / table / bibliography (toolbar buttons)\n\n### Editor modes (switchable)\n- **Default** (OS-standard keybindings)\n- **vim** (experimental — known issues with IME / WebKit, advanced users only)\n- **emacs**\n\n### Files \u0026 projects\n- **Tabs** — multiple files at once, drag-reorder, hot exit (tabs restored on next launch)\n- **Project sidebar** — file tree, git status badges, right-click menu (new / rename / delete)\n- **Image / PDF tabs** — view `.png` / `.svg` / `.pdf` etc. directly in tabs (Typst can `#image()` them)\n\n### Built-in templates (ja / en)\n- Business report / Technical report / Meeting minutes / Slides / Empty\n- **Form-based template editing (lite)** — template function arguments are exposed as input fields; typing fills the document\n\n### UI / customization\n- **Command palette** (Ctrl+Shift+P / F1) — fuzzy search across all commands\n- **Hamburger menu** (top-left) — categorized access to every feature\n- **Toolbar editor** — drag to reorder, add / remove items, presets (standard / minimal / academic)\n- **Keybindings editor** — every command rebindable\n- **Dark / light themes** — auto (follow OS) or manual\n- **Japanese / English UI** — auto (`navigator.language`) or manual\n- **Custom title bar (CSD)** — file name, cursor position, character count consolidated at the top\n\n### Bundled fonts\n- **Harano Aji Mincho / Gothic** (Regular + Bold) — [trueroad/HaranoAjiFonts](https://github.com/trueroad/HaranoAjiFonts), SIL Open Font License 1.1\n\nFor the full list and roadmap, see [PROGRESS.md](./PROGRESS.md) (Japanese only for now).\n\n---\n\n## Download \u0026 install\n\n\u003e 🚧 v0.1.0-alpha is being prepared. After release, binaries will be available on the [Releases](https://github.com/barewalker/yuhitsu/releases) page.\n\n### Linux\n\n`.AppImage` (works on any distro) or `.deb` (Debian / Ubuntu) from Releases.\n\n```bash\n# AppImage\nchmod +x yuhitsu_*.AppImage\n./yuhitsu_*.AppImage\n\n# .deb\nsudo dpkg -i yuhitsu_*.deb\n```\n\n\u003e 💡 **If Japanese / CJK IME doesn't work**\n\u003e\n\u003e On Linux distros installed in a non-Japanese locale where fcitx5 / ibus was added later, the IME-bridge environment variables may not be set in your session, which can break kanji conversion in the editor. This is general WebKit2GTK + fcitx5 / ibus behavior, not Yuhitsu-specific.\n\u003e\n\u003e On Ubuntu, the standard fix is `im-config -n fcitx5` (or `ibus`). Alternatively, set the variables when launching:\n\u003e\n\u003e ```bash\n\u003e # fcitx5\n\u003e GTK_IM_MODULE=fcitx XMODIFIERS=@im=fcitx yuhitsu\n\u003e # ibus\n\u003e GTK_IM_MODULE=ibus XMODIFIERS=@im=ibus yuhitsu\n\u003e ```\n\u003e\n\u003e To persist them, add to `~/.profile` or `~/.config/environment.d/im.conf`.\n\n### Windows\n\nDownload the `.msi` installer from Releases and run it.\n\n\u003e ⚠️ **About the SmartScreen warning**\n\u003e Yuhitsu is an unfunded personal OSS project, so we don't carry a Microsoft code-signing certificate (which costs hundreds of USD per year). On first launch you'll see the blue SmartScreen warning — click **\"More info\" → \"Run anyway\"** to start. Helix, Alacritty, and many other OSS desktop apps work the same way.\n\u003e We're considering [SignPath.io's free OSS signing](https://signpath.io/) for the future.\n\n### macOS\n\n\u003e 🚧 Not in distribution scope for alpha. The CI builds successfully but the maintainer doesn't have a Mac to test on. If you want to try it, see [Building from source](#building-from-source).\n\n---\n\n## Quick start\n\n1. **Launch** → on first run, a template picker appears\n2. Pick a template (business report / minutes / etc.) → content drops into the editor\n3. **Top-left hamburger** → all commands by category\n4. **F1** or **Ctrl+Shift+P** → command palette\n5. **Ctrl+S** → save as `.typ`\n6. **Ctrl+E** → export PDF\n\nFor more, open the **hamburger → Help → About Yuhitsu** dialog inside the app for documentation links.\n\n---\n\n## Building from source\n\n### Prerequisites\n\n- [Rust](https://www.rust-lang.org/) 1.77+\n- [Node.js](https://nodejs.org/) 20+ + [pnpm](https://pnpm.io/) 10+\n- Linux: `libwebkit2gtk-4.1-dev`, `libssl-dev`, `libgtk-3-dev`, etc. (Tauri's Linux build deps)\n- macOS: Xcode CLT\n- Windows: Microsoft C++ Build Tools + WebView2\n\n`tinymist` is bundled as a sidecar binary, so contributors do not need to install it separately. `scripts/fetch-tinymist.sh` downloads the binary for your host target triple.\n\n### Setup\n\n```bash\ngit clone --recursive https://github.com/barewalker/yuhitsu.git\ncd yuhitsu\n./scripts/fetch-tinymist.sh   # fetch the tinymist sidecar\ncd app\npnpm install\npnpm tauri dev\n```\n\n\u003e ⚠️ **`--recursive` matters**: the bundled Harano Aji fonts are pulled in as a git submodule.\n\u003e\n\u003e 💡 **`fetch-tinymist.sh`** is idempotent (skips if already present). Override the pinned version with `TINYMIST_VERSION=v0.14.16 ./scripts/fetch-tinymist.sh`.\n\n### Release build\n\n```bash\ncd app\npnpm tauri build\n# Artifacts: app/src-tauri/target/release/bundle/\n```\n\n---\n\n## Roadmap\n\n- **Phase 0** (done): research \u0026 PoC, technology selection\n- **Phase 1** (current): MVP — editor / templates / preview / distribution\n- **Phase 2** (planned): UX polish, built-in AI features, friendly git UI\n- **Phase 3** (planned): WYSIWYG-lite mode, `.typz` single-file bundle format, Yuhitsu as MCP server (external agent integration)\n\nDetails in [PROGRESS.md](./PROGRESS.md) (Japanese).\n\n---\n\n## Tech stack\n\n- **Shell**: [Tauri 2](https://tauri.app/) (Rust + OS WebView)\n- **Editor**: [CodeMirror 6](https://codemirror.net/)\n- **Typst engine**: [Typst](https://github.com/typst/typst), used via [tinymist](https://github.com/Myriad-Dreamin/tinymist) (LSP / preview / compile)\n\n---\n\n## License\n\n- Yuhitsu itself: **[Apache-2.0](./LICENSE)**\n- Bundled fonts (Harano Aji Mincho / Gothic): **SIL Open Font License 1.1** (Copyright © trueroad)\n\n---\n\n## Author\n\n[barewalker](https://github.com/barewalker)\n\nA personal project that started from frustration with existing options for producing business documents. If you have similar pain points, hopefully Yuhitsu helps.\n\n---\n\n## Related\n\n- [Typst](https://typst.app/)\n- [Tinymist](https://github.com/Myriad-Dreamin/tinymist)\n- [Harano Aji Fonts](https://github.com/trueroad/HaranoAjiFonts)\n\n---\n\n## Acknowledgements\n\nImplementation of this project was assisted by [Claude Code](https://claude.com/claude-code) (Anthropic). Technical decisions, design, and quality responsibility lie with the author.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarewalker%2Fyuhitsu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbarewalker%2Fyuhitsu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbarewalker%2Fyuhitsu/lists"}