hermes-official-plugins
☤ The official plugins for Hermes Agent, built and maintained by Nous Research: Home Assistant, Spotify, Claude Subscription DirectSDK and more, one install away from the Hermes plugin catalog.
翻訳待ち
DynaFetch, Your Data Retriever. Modern REST API package for Dynamo 3.0/.NET 8. Features a clean HTTP client with dual JSON engines, persistent authentication, and comprehensive error handling. Inspired by DynaWeb, built for performance and simplicity.
翻訳待ち
Loading the full README.
Read the full README ↗Modern REST API integration for Dynamo 3.0
🌐 View DynaFetch Landing Page - Interactive overview with examples and documentation links
DynaFetch is a clean, modern .NET 8 package that brings REST API capabilities to Dynamo 3.0. Built for performance and ease of use, it provides a comprehensive HTTP client with robust JSON processing and enterprise-ready authentication support.
DynaFetch was developed through a collaborative "Vibe Coding" project between TheBIMsider and Claude (Anthropic AI). This partnership combined domain expertise in BIM and construction technology with AI-assisted development to create a modern, efficient REST API package for the Dynamo community.
Development Approach: Iterative development with comprehensive testing, focusing on real-world usage patterns and professional-grade reliability.
Inspiration: DynaFetch is inspired by and builds upon the pioneering work of Radu Gidei and the DynaWeb package:
DynaWeb established the foundation for REST API integration in Dynamo. DynaFetch continues this legacy with modern .NET 8 architecture, enhanced JSON processing, and streamlined authentication patterns. We're grateful for Radu's contribution to the Dynamo community.
1. ClientNodes.Create → Creates HTTP client
2. ExecuteNodes.GET(client, "https://api.github.com/users/octocat") → Makes API call
3. JsonNodes.ToDictionary(response) → Converts JSON to Dynamo Dictionary
That's it! You now have GitHub user data as a Dynamo Dictionary.
Create Client → GET Request → Process JSON
Nodes:
ClientNodes.Create() → clientExecuteNodes.GET(client, "https://jsonplaceholder.typicode.com/posts/1") → responseJsonNodes.ToDictionary(response) → dictionaryResult: Post data as Dynamo Dictionary with keys like "userId", "title", "body"
Create Client → Add Authentication → GET Request → Process Response
Nodes:
ClientNodes.Create() → clientClientNodes.AddDefaultHeader(client, "Authorization", "Bearer YOUR_TOKEN") → clientExecuteNodes.GET(client, "https://httpbin.org/bearer") → responseJsonNodes.ToDictionary(response) → dictionaryAuthentication persists: All subsequent requests from this client automatically include the Bearer token.
Create Client → Build JSON → POST Request → Process Response
Nodes:
ClientNodes.Create() → clientJsonNodes.DictionaryToJson(your_dictionary) → json_stringExecuteNodes.POST(client, "https://api.example.com/data", json_string) → responseJsonNodes.ToDictionary(response) → result_dictionaryDynaFetch supports modern API authentication:
Bearer Tokens (OAuth/JWT):
ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + token)
API Keys:
ClientNodes.AddDefaultHeader(client, "X-API-Key", api_key)
Custom Headers:
ClientNodes.AddDefaultHeader(client, "Custom-Auth", auth_value)
JWT Assertions (Service Accounts):
ClientNodes.GenerateJwtAssertion(privateKeyPem, clientId, audience, scopes, 60)
For service account authentication like Autodesk Platform Services Secure Service Accounts (SSA):
1. ClientNodes.GenerateJwtAssertion(privateKeyPem, clientId, "https://developer.api.autodesk.com/", ["data:read", "data:write"], 60) → jwt_assertion
2. Build token exchange body:
"grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=" + jwt_assertion → request_body
3. ClientNodes.Create() → client
4. ExecuteNodes.POST(client, "https://developer.api.autodesk.com/authentication/v2/token", request_body) → token_response
5. JsonNodes.ToDictionary(token_response) → token_dict
6. Dictionary.ValueAtKey(token_dict, "access_token") → access_token
7. ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + access_token) → authenticated_client
8. Use authenticated_client for subsequent API calls
Supported JWT Use Cases:
File Uploads (Multipart Form Data):
RequestNodes.AddFile(request, "file", filePath, "image/png")
File Upload Workflow:
1. ClientNodes.Create() → client
2. ClientNodes.AddDefaultHeader(client, "Authorization", "Bearer " + token)
3. RequestNodes.ByUrl(uploadUrl) → request
4. RequestNodes.AddFile(request, "file", filePath, "image/png") → request
5. ExecuteNodes.POST(client, "", request) → response
This is the beginning of the README. Read the rest at the original. Read the full README ↗