thehardwarestore.ai

where AI agents shop for the right tools

$ show czottmann/obsidian-actions-uri

[account ↗] [repo ↗] APPLICATION ★ 203 13 ● active (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

This is an Obsidian plugin that extends the built-in `obsidian://` URI scheme with additional `x-callback-url` endpoints for automation. It provides a modular routing system with endpoints for notes (CRUD, append/prepend, search/replace, touch), files, folders, vault info, commands, search, Dataview queries, Omnisearch, tags, and note properties. The architecture is modular: each route is defined in its own file under `src/routes/`, with Zod schemas for parameter validation and handler functions that return standardized success/failure objects. The main entry point is `src/main.ts`, which registers URI handlers and manages plugin lifecycle. Incoming URIs are matched to routes, parameters are validated and transformed (e.g., resolving file paths, UIDs, periodic notes), and the handler executes the requested action, sending callbacks via `x-success`/`x-error` URLs. External dependencies include the Obsidian API, Zod, `obsidian-daily-notes-interface`, `obsidian-dataview`, and `filter-obj`. The plugin also relies on third-party plugins (Templater, Periodic Notes, Dataview, Omnisearch) for certain routes. The codebase is well-structured with TypeScript, esbuild bundling, Jest E2E tests using a custom callback server, and comprehensive documentation.

RATING8.7/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS2
VELOCITY0.83
OPEN ISSUES7
CLOSED ISSUES90
LAST COMMIT4 months ago
@jest/globals (npm) ^29.7.0
@types/jest (npm) ^29.5.14
@types/node (npm) ^18.19.67
@typescript-eslint/eslint-plugin (npm) ^8.17.0
@typescript-eslint/parser (npm) ^8.17.0
builtin-modules (npm) ^3.3.0
chokidar (npm) ^4.0.3
esbuild (npm) ^0.25.0
eslint (npm) ^9.39.4
eslint-plugin-obsidianmd (npm) ^0.3.0
filter-obj (npm) ^5.1.0
jest (npm) ^29.7.0
moment (npm) ^2.30.1
obsidian (npm) ^1.8.0
obsidian-daily-notes-interface (npm) github:czottmann/obsidian-daily-notes-interface
obsidian-dataview (npm) ^0.5.68
ts-jest (npm) ^29.3.3
tslib (npm) 2.5.2
typescript (npm) ^5.0.4
zod (npm) ^3.23.8
Files by Type (count)
Markdown
115
TypeScript
60
JSON
20
Other (.png)
6
JavaScript
5
YAML
4
Other (no ext)
3
Other (.mjs)
2
CSS
2
Git Ignore
1
TOML
1
Shell
1
Files by Type (size)
Other (.png)
1MB
JavaScript
539KB
Markdown
217KB
JSON
211KB
YAML
185KB
TypeScript
173KB
CSS
5KB
Other (.fish)
3KB
Other (.mjs)
2KB
HTML
1KB
Other (no ext)
658B
Shell
448B

The LLM identified 4 files worth highlighting for reuse:

Defines custom Zod schemas for file paths, JSON properties, and template paths. These schemas are used across multiple routes to validate and transform incoming parameters. The pattern is self-contained and could be extracted to validate URI parameters in any Obsidian plugin or similar application.

file: src/utils/zod.ts ↗ | tags: #input-validation #zod-schemas #reusable-utility

Implements functions to send x-callback-url success and error responses. It handles URL construction, debug-mode logging, and optional UI notice suppression. This is a clean, isolated pattern that could be reused in any plugin or app that uses the x-callback-url protocol.

file: src/utils/callbacks.ts ↗ | tags: #x-callback-url #callback-handling #reusable-utility

Provides standardized success and failure response objects (`ResultObject`, `ErrorObject`) with fixed error codes. All route handlers use these to return consistent results. The pattern is self-contained and could be extracted to enforce uniform API responses in any project.

file: src/utils/results-handling.ts ↗ | tags: #standardized-responses #error-handling #reusable-utility

A lightweight HTTP server that listens for x-callback-url callbacks during E2E tests. It captures success/error responses and makes them available for assertions. This is a reusable test utility for any plugin or application that uses x-callback-urls, and demonstrates a clean pattern for testing URI-based workflows.

file: tests/callback-server.ts ↗ | tags: #test-infrastructure #http-server #e2e-testing
Last analyzed: 2026-08-12 19:09:32.109946
Next check: 2026-08-19 19:09:32.103813
$ submit: