Software engineer in Yokohama, Japan β building local-first AI tooling
for Obsidian, the terminal, and the desktop.
- π§ AI that stays on your machine β LLM chat, RAG, and workflow automation that run against your own vault, your own files, your own keys.
- π Obsidian plugins β a family of "Hub" plugins bringing chat, MCP servers, semantic search, dashboards, and WYSIWYG editing into the vault.
- π οΈ Small, dependency-free Go tools β MCP servers, log monitors, file watchers, a PDF splitter. Single binary, no runtime.
- β¨οΈ Japanese input & editor tooling β lightweight SKK for the browser, desktop, Omarchy, and Neovim, because the keyboard is where the work happens.
π₯οΈ gemihub-desktopA local-first desktop workspace that turns your notes, documents, and workflows into context for AI. Everything I've learned from the Obsidian plugins, rebuilt as a standalone app β your files stay yours, the AI comes to them. This is where most of my energy goes from here on. β Extended by gemihub-gdrive, hub-ronginus, hub-accounting, hub-audio-score |
π GemiHubRead, annotate, and ask Gemini about documents in your own Google Drive β with no external database and no lock-in. PDFs, EPUBs, Markdown notes, highlights, memos, dashboards, chat, and workflows all live together in a self-hostable, offline-first web app. |
ποΈ speech-popupA resident voice dictation popup for Windows, Linux, and macOS. Press a hotkey, speak, edit the transcript, then press Enter to paste it into the app you were using. Use browser speech recognition or bring your own OpenAI-compatible, whisper.cpp, Microsoft MAI Transcribe, Gemini, or Vertex AI service. The popup supports English and Japanese, voice commands, retryable recordings, and keyboard-first editing. |
|
The other half of my time goes here. One idea, three engines β pick the one that matches how you want your AI to run, then plug the companion plugins into it.
β¨ Gemini HelperGoogle Gemini, desktop and mobile. AI chat, workflow automation, RAG, and an LLM Wiki (OKF). |
π LLM HubBring your own backend: Gemini, OpenAI, OpenRouter, Grok, Ollama, or a CLI β all behind one UI. |
π Local LLM HubFully private, no cloud required. Vault tools, MCP servers, RAG, encryption, and edit history. |
Companion plugins connect to whichever engine you installed β they supply no models of their own, they borrow yours:
- π£οΈ Discussion Hub β AI plugins register their models at runtime, so models from different providers can argue in the same structured discussion. Assign roles, run turns, let them conclude, then have a separate set of voters pick a winner.
- π Dashboard Hub β AI is optional, but connect an engine and it can answer questions about selected text or reading memos, generate and edit a Base, rewrite Timeline posts, and build and run Workflows. It shares its Base directory and Timeline name with the connected plugin, so date-based questions read one day's file instead of scanning everything.
I also build a family of lightweight SKK Japanese input tools around the same familiar key bindings and conversion workflow β no system-wide IME required.
π chrome-skk-liteSKK directly inside Chrome input fields, plus a clipboard input window for places extensions cannot reach. The same engine is also available as a GemiHub Desktop plugin. |
π¬ skk-popupA cross-platform popup for Linux, Windows, and macOS. Call it with a hotkey, compose with SKK, then paste the result into any app. Rebuilt natively for Omarchy as omarchy-skk-popup. |
π skk-lite.nvimPure Lua SKK for Neovim insert and command-line modes, with no Node.js or Denops runtime required while typing. |
- π§ omarchy-skk-popup β skk-popup reborn as an Omarchy shell plugin. The panel is drawn in QML inside
omarchy-shell, while the SKK engine runs as a small Go daemon speaking JSON lines over stdin/stdout. One Hyprland hotkey, an γγγ button on the bar, and the same dictionaries, user dictionary, and history files as skk-popup.
π§© Beyond the pinned repos
Obsidian / knowledge tools β obsidian-wysimark (WYSIWYG Markdown editing that keeps files pure Markdown), obsidian-work-log, obsidian-gitlog-summary, obsidian-gdrive-vault, obsidian-gemihub
GemiHub ecosystem β gemihub-gdrive (Drive sync), hub-ronginus (AI debate arena), hub-accounting (Beancount-compatible bookkeeping), hub-audio-score (audio β sheet music), llm-hub-skills
Go & infra β mcp-gatekeeper (sandboxed MCP server with policy control), ragujuary (RAG on Gemini File Search), logmon-go, minipdfsplit (stdlib-only PDF page splitter β xref streams, object streams, RC4/AES-encrypted PDFs), mcp-gcal, go-touch, touch_and_go
Editor & web β nvim-gemini-helper (Gemini + RAG in Neovim), http-file.nvim, wysimark-lite, mdwys, socket.io-reqev, svg_canvas_chart
βοΈ I write about AI tooling and development on Zenn β issues and PRs are always welcome on any of my repos.






