Panda is an open-source, offline-first HTTP client built with Tauri for developers who value privacy and local-first workflows with an incredible developer experience (DX). Designed to keep your data private and under your control, Panda allows you to interact with APIs in the best way possible, with optional support for cloud integrations for additional tools like vaults and observability. Whether youβre working solo or within a team, Panda provides a streamlined and powerful API testing experience.
- Windows 10 (64-bit) or later
Simply download and execute the installer, available on the releases page. Currently, there are no official releases, as the project is still in its prototyping phase with ongoing changes. However, you can clone the project and compile it yourself. Refer to the Tauri v2 documentation for guidance.
After installing the binary, you can scaffold a demo collection for testing purposes. Be sure to binary path to your PC environment variables.
If you're on Windows (or any supported OS), run:
# Initialize a new project
panda init demo-project
Navigate to the project directory and start the application:
# Open the project in the desktop app
panda .
- TOML Syntax: Make HTTP requests using TOML, making it easy to read, write, and version control with Git.
- Low Memory Utilization: Built with Tauri, ensuring optimal performance and minimal resource consumption.
- Team Collaboration: Utilize Git for version control and seamless collaboration.
- Lightweight & Fast: Designed to be simple, intuitive, and quick to load.
Before you begin, ensure you have installed the necessary tools:
- Rust & Cargo
- Node.js
- Tauri CLI:
pnpm add -D @tauri-apps/cli
git clone https://github.com/emee-dev/pinpanda
cd pinpanda
I recommend pnpm
but npm
will work as well.
# Install pnpm globally
npm install -g pnpm
# Intall dependencies
pnpm install
pnpm tauri:dev
You are now ready to start developing!
Be sure to generate a signing credentials and add to the environment. Read more Tauri
pnpm tauri:build
- Currently, Panda does not use any platform-specific API and only supports Windows.
- The
src
folder contains the React.js code for the UI, whilesrc-tauri
contains the Rust backend code.
As Panda is still in beta, several features and improvements are planned. Hereβs an overview of upcoming features:
- Request and Response Handling
- Panda Collections (Folder & File Structure Management)
- Secret Management
- Scripting Capabilities
- Postman Collection Support
- Insomnia Collection Support
- GraphQL Support
- Code Generation
- Package Distribution:
- Windows Binary
- Homebrew Support
- Chocolatey Support
- Authentication:
- Bearer & Basic Authentication
- OpenAPI 3.0 Imports
Panda allows making requests using TOML syntax. Below are some examples:
[get]
name = "Get User Info"
url = "_.base_url/users/_.user_id"
[post]
name = "Create User"
url = "_.base_url/users"
[post.json]
content = """
{
"userId": "jae",
"email": "email@gmail.com"
}
"""
[get.json]
content = """
{
"userId": "jae",
"email": "email@gmail.com"
}
"""
[get.form_data]
content = [
{ field = "file", value = "./path/to/file.txt" },
{ field = "user_name", value = "jet" }
]
[get.form_urlencoded]
content = [
{ field = "title", value = "New Post" },
{ field = "content", value = "This is the content of the new post." },
{ field = "tags", value = "example,post" }
]
[get.xml]
content = """
<post>
<title>New Post</title>
<content>This is the content of the new post.</content>
<tags>
<tag>example</tag>
<tag>post</tag>
</tags>
</post>
"""
[get.text]
content = """
This is a request type of body text. Very concise.
"""
[get.pre_request]
code = """
console.log("Hello world.");
"""
[get.post_request]
code = """
console.log("Hello world.");
"""
[get.query]
id = "emee"
page = 10
limit = 30
[get.headers]
Authorization = "_.auth_token"
Accept = "application/json"
Note: The syntax is experimental and subject to change based on feasibility, DX, and other factors.
The pricing model is still undecided. The plan is to open-source the application while offering licenses for teams and organizations. The sustainability of Worm will rely on team and organization plans. If you have suggestions regarding pricing and licensing, feel free to share your thoughts.
Contributions of all kinds are welcome! Whether it's fixing bugs, adding features, sharing feedback, starring the repo, or improving documentation, feel free to open an issue or submit a pull request.
Thank you for your support! π
If you find Panda useful, consider supporting my work:
- X (formerly Twitter): @__emee