简体中文 · English
Nimbo is a fast, native, local-first API client built for HarmonyOS. It gives developers a focused workspace for composing HTTP requests, inspecting responses, organizing collections, and switching environments—without requiring an account or cloud service.
- Native HarmonyOS application distributed for PC (
2in1); responsive tablet and phone layouts remain in the codebase for future use - HTTP requests with GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS
- Query parameters, headers, Bearer/Basic/API Key authentication, and multiple body types
- Pretty and raw response views, response headers, cookies, error states, and binary saving
- Nested collections and folders with persistent saved requests
- Syntax-highlighted JSON request editing and selectable read-only JSON responses
- Persistent built-in environments, imported environments, and variable resolution
- Global search across requests, collections, history, environments, and commands
- Local request history and workspace restoration
- A unified title-bar importer with highlighted cURL editing and drag-and-drop API files, with automatic Postman Collection/Environment and OpenAPI 3.x / Swagger 2.0 JSON detection
- Response JSONPath preview and explicit environment-variable extraction with overwrite protection
- Declarative response tests for status, timing, headers, and JSONPath with per-rule results
- Sandboxed Pre-request and Post-response JavaScript with guarded request/response APIs, atomic environment writes, and visible console and execution results
- Local Nimbo backup export with secrets redacted by default
- Light, dark, and system themes
- English and Simplified Chinese interfaces
Nimbo 1.0's core workflow is implemented and can run on a HarmonyOS PC target:
Create or import a request
↓
Configure and send it
↓
Inspect the response
↓
Save it into a collection
↓
Reuse it with environments and history
WebSocket, SSE, GraphQL, gRPC, collection runners, collection-level scripts, AI features, cloud sync, and accounts are not implemented yet. The interface intentionally does not expose unavailable features.
Pre-request scripts can update the current send without rewriting the saved request:
nimbo.request.headers.set('Authorization', `Bearer ${nimbo.environment.get('token')}`);
nimbo.request.url = `${nimbo.request.url}?source=nimbo`;Post-response scripts receive a read-only response and can publish values to the active environment:
const payload = JSON.parse(nimbo.response.body);
nimbo.environment.set('responseId', payload.id);
console.log(nimbo.response.statusCode, payload.id);Each execution uses a fresh sandbox with time, memory, stack, source, concurrency, and console-output limits. Request and environment changes are applied only after a successful script. The fixed order is Pre-request, variable resolution, HTTP, Post-response, JSONPath extraction, then declarative tests.
- macOS
- DevEco Studio with the HarmonyOS SDK installed
- Compile/target SDK: HarmonyOS 6.1.1 (API 24)
- Compatible SDK: HarmonyOS 6.0.0 (API 20)
- A HarmonyOS device or emulator
Clone the repository:
git clone git@github.com:burybell/nimbo.git
cd nimboCreate your local build profile:
cp build-profile.example.json5 build-profile.json5Open the project in DevEco Studio, configure a signing profile for your own application, and run the entry module.
You can also build from the command line when DevEco Studio is installed at its default macOS location:
./build_hap.shRun repository checks together with a local HarmonyOS build:
./scripts/quality-check.sh --buildThe HAP output is written under:
entry/build/default/outputs/default/
build-profile.json5 is intentionally ignored because DevEco Studio may store machine-specific signing paths and credentials in it. Never commit your local signing profile, certificate, keystore, or passwords.
AppScope/ Application resources and identity
entry/src/main/ets/
├── app/ Root application composition and state
├── controller/ Request orchestration
├── models/ UI and persistence models
├── network/ HTTP engine
├── services/ Import, export, and local storage
├── state/ Defaults and initial state
└── ui/ Components, pages, and design tokens
docs/nimbo-dev-package/ PRD, UI/UX specification, and handoff notes
The current delivery scope and engineering constraints are documented in CODEX_HANDOFF.md.
Collections, requests, environments, history, preferences, and restored tabs stay on the local device. Nimbo does not require an account and does not provide cloud synchronization in the current version. Be careful when exporting backups that include secrets.
Issues and pull requests are welcome. Before making a large change, please open an issue to discuss its scope. Keep the project buildable, avoid exposing unfinished controls, and do not implement capabilities explicitly marked as deferred in the handoff document without prior discussion.
Read CONTRIBUTING.md before submitting a change. Contributions require acceptance of the Nimbo Contributor License Agreement.
Nimbo is licensed under the GNU Affero General Public License v3.0 only. Commercial licensing may be offered separately by the copyright holder.
- Bundle name:
com.nimbo.app - Huawei App ID:
6917615930484878194
The App ID identifies the official Nimbo application. Contributors should use their own application identity and signing profile for local development.
