# UniRate Currency for Obsidian Inline live and historical currency exchange rates in your notes. Type `` `usd:eur` `` and the plugin renders the current USD→EUR rate where the inline code used to be. Type `` `usd:eur:100` `` and it renders the converted amount. 170+ currencies plus the major cryptocurrencies, with daily history back to 1999 (Pro plan). Powered by [UniRateAPI](https://unirateapi.com). ## Why Existing Obsidian finance plugins are either crypto-only (`obsidian-crypto-lookup`) or general-purpose calculators that happen to handle currency (`obsidian-numerals`). Neither gives you inline, in-line live rates in normal prose. A [2022 forum thread](https://forum.obsidian.md/) asking for one is still open. ## Install Until the plugin is approved on the community plugins list, install manually: 1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](https://github.com/UniRate-API/obsidian-currency/releases). 2. Drop them into `/.obsidian/plugins/unirate-currency/`. 3. Reload Obsidian and enable **UniRate Currency** under Settings → Community plugins. 4. Open the **UniRate Currency** tab and paste your API key (get a [free key](https://unirateapi.com/register)). ## Syntax All forms go inside a single inline code span (`` `…` ``): | You write | Renders as | |---|---| | `` `usd:eur` `` | `0.9234 EUR/USD` | | `` `usd:eur:100` `` | `92.34 EUR` | | `` `100 usd:eur` `` | `92.34 EUR` | | `` `gbp>jpy` `` | `198.42 JPY/GBP` | | `` `usd→eur` `` | `0.9234 EUR/USD` | - Currency codes can be 3-5 characters, case-insensitive (`USDT`, `BTC`, `XAU`). - Decimal places, thousand-grouping, and the appended currency code are all configurable. - Rates are cached in memory for 60 minutes by default to avoid hammering the API. ## Commands - **Insert exchange rate** — opens a modal to pick from/to/amount/date and inserts the result at the cursor. - **Convert selection** — select something like `100 USD to EUR` (or `100 usd:eur`) and run the command to replace the selection with the converted value. - **Clear rate cache** — drop the in-memory cache; the next render will re-fetch. ## Pricing UniRateAPI's free tier covers live rates and supports 170+ currencies. Historical rates and commodities (`XAU`, `XAG`, `XPT`, `XPD`) require a [Pro plan](https://unirateapi.com/pricing). ## Disclosure This plugin is built and maintained by UniRateAPI. If you'd rather use a different rate source, the inline syntax is generic enough that another plugin could implement it the same way — open an issue if you'd find that useful. ## Development ```bash npm install npm run dev # esbuild watch npm run build # tsc + esbuild production npm test # jest unit tests ``` The plugin uses Obsidian's `requestUrl` API so it works on both desktop and mobile without CORS workarounds. ## Other UniRate clients UniRate ships official client libraries and framework integrations across the ecosystem. The repos below are all maintained under the [UniRate-API](https://github.com/UniRate-API) org. - **Languages:** [Python](https://github.com/UniRate-API/unirate-api-python) · [Node.js / TypeScript](https://github.com/UniRate-API/unirate-api-nodejs) · [Go](https://github.com/UniRate-API/unirate-api-go) · [Rust](https://github.com/UniRate-API/unirate-api-rust) · [Java](https://github.com/UniRate-API/unirate-api-java) · [Ruby](https://github.com/UniRate-API/unirate-api-ruby) · [PHP](https://github.com/UniRate-API/unirate-api-php) · [.NET](https://github.com/UniRate-API/unirate-api-dotnet) · [Swift](https://github.com/UniRate-API/unirate-api-swift) - **Web frameworks:** [NestJS](https://github.com/UniRate-API/nestjs-unirate) · [Django / Wagtail](https://github.com/UniRate-API/wagtail-unirate) · [FastAPI](https://github.com/UniRate-API/fastapi-unirate) · [Flask](https://github.com/UniRate-API/flask-unirate) · [React](https://github.com/UniRate-API/react-unirate) · [tRPC](https://github.com/UniRate-API/trpc-unirate) - **Static-site generators:** [Astro](https://github.com/UniRate-API/astro-unirate) · [Eleventy](https://github.com/UniRate-API/eleventy-unirate) · [Hugo](https://github.com/UniRate-API/hugo-unirate) - **Data / orchestration:** [Airflow](https://github.com/UniRate-API/airflow-provider-unirate) · [dbt](https://github.com/UniRate-API/dbt-unirate) · [LangChain](https://github.com/UniRate-API/langchain-unirate) - **Workflow / no-code:** [n8n](https://github.com/UniRate-API/n8n-nodes-unirate) · [Google Sheets](https://github.com/UniRate-API/unirate-sheets) · [MCP server](https://github.com/UniRate-API/unirate-mcp) - **Editors / tools:** [VS Code](https://github.com/UniRate-API/vscode-unirate) · [Obsidian](https://github.com/UniRate-API/obsidian-currency) - **Specialty bridges:** [NodaMoney (.NET)](https://github.com/UniRate-API/UniRateApi.NodaMoney) Get a free API key at [unirateapi.com](https://unirateapi.com). ## License MIT. See `LICENSE`.