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. Single binary, no runtime.
- ⌨️ Japanese input & editor tooling — lightweight SKK for the browser, desktop, and Neovim, because the keyboard is where the work happens.
A 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 | One responsive workspace for everything in your vault: Obsidian Bases, Kanban boards, calendars, timelines, web pages, and password-protected secrets. Linked memos work across notes, PDFs and EPUBs — so you can plan projects, annotate documents and track events without ever leaving Obsidian. |
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.
Google 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. | Fully 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.
SKK 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. | A cross-platform popup for Linux, Windows, and macOS. Call it with a hotkey, compose with SKK, then paste the result into any app. | Pure Lua SKK for Neovim insert and command-line modes, with no Node.js or Denops runtime required while typing. |
🧩 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, 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.






