{"repo":"chenyukang/obr","free":true,"listed":false,"github":"https://github.com/chenyukang/obr","clone":"git clone https://github.com/chenyukang/obr.git","description":"A local-first web companion for capturing, editing, and reading Obsidian notes from browser.","language":"Rust","stars":11,"topics":["obsidian","rust","web"],"license":"MIT","category":"productivity","readme_excerpt":"Obr Obr is a local-first web companion for an Obsidian vault. It gives you a fast browser interface for capturing daily notes, editing Markdown blocks, reading and searching notes, managing todos, and uploading images, while keeping your content as plain Markdown files in the vault you already use. Obr runs on your own machine and can be opened locally or exposed to trusted devices through a stable HTTPS origin such as Tailscale Serve/Funnel. It is built for personal writing workflows where the browser is the quick input surface and Obsidian remains the durable knowledge base. Setup Install Rust stable, then clone and build: For the fastest setup, let Obr generate config/local.toml , prepare the vault directory, start the daemon, and print the service URL: To also publish Obr through Tailscale Funnel: The Tailscale flow starts a separate userspace tailscaled under $HOME/.local/share/tailscale-obr , asks you to approve the Tailscale login URL if needed, enables Funnel, writes the resulting .ts.net hostname into config/local.toml , starts Obr, and prints both the local and public URLs. Use --hostname to request a specific Tailscale node name; the actual published hostname is read back from tailscale funnel status . If config/local.toml already exists, obr init backs it up before writing the new config. For manual setup, create a local config: Point vault path at your Obsidian vault. You can either edit config/local.toml directly: or keep the default vault path = \"vault\" and cre","default_branch":null,"files":null,"tree":[],"storefront":"/r/chenyukang","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chenyukang/obr/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}