mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-03-11 21:11:36 +01:00
50b0e23d53b88cc46c4f07a9fa96833146be9db1
Implements a unified action system that serves as a single source of truth for all operations in Yaak (Tauri app, CLI, plugins, deep links, MCP server). Key features: - ActionExecutor: Combined registry and execution engine with async RwLock - ActionHandler: Trait-based handlers using async closures - Context system: RequiredContext and CurrentContext for action availability - Action groups: Organize related actions - TypeScript bindings: Auto-generated via ts-rs for frontend use Design highlights: - Handlers are closures (no dependencies on other yaak crates) - Registration requires both metadata and handler (prevents orphan actions) - Flexible return values via serde_json::Value - All methods are async using tokio All 33 tests passing. Ready for integration with yaak-core and yaak-app. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
💫 Yaak ➟ Desktop API Client 💫
A fast, privacy-first API client for REST, GraphQL, SSE, WebSocket, and gRPC – built with Tauri, Rust, and React.
Development is funded by community-purchased licenses. You can also become a sponsor to have your logo appear below. 💖
Features
Yaak is an offline-first API client designed to stay out of your way while giving you everything you need when you need it. Built with Tauri, Rust, and React, it’s fast, lightweight, and private. No telemetry, no VC funding, and no cloud lock-in.
🌐 Work with any API
- Import collections from Postman, Insomnia, OpenAPI, Swagger, or Curl.
- Send requests via REST, GraphQL, gRPC, WebSocket, or Server-Sent Events.
- Filter and inspect responses with JSONPath or XPath.
🔐 Stay secure
- Use OAuth 2.0, JWT, Basic Auth, or custom plugins for authentication.
- Secure sensitive values with encrypted secrets.
- Store secrets in your OS keychain.
☁️ Organize & collaborate
- Group requests into workspaces and nested folders.
- Use environment variables to switch between dev, staging, and prod.
- Mirror workspaces to your filesystem for versioning in Git or syncing with Dropbox.
🧩 Extend & customize
- Insert dynamic values like UUIDs or timestamps with template tags.
- Pick from built-in themes or build your own.
- Create plugins to extend authentication, template tags, or the UI.
Contribution Policy
Yaak is open source but only accepting contributions for bug fixes. To get started,
visit DEVELOPMENT.md for tips on setting up your environment.
Useful Resources
Releases
10
Languages
TypeScript
56.5%
Rust
41.6%
JavaScript
1.2%
CSS
0.6%
Shell
0.1%



















