Advanced API Testing Tool with AI Integration for macOS.
A Postman-like application with powerful features:
- π€ AI-powered request generation (Anthropic, OpenAI, DeepSeek)
- π MCP (Model Context Protocol) client for testing MCP servers
- π Visual workflow builder for automated request sequences
- π Multi-value environment variables with dropdown selection
- π¦ Workspaces for project organization
- π₯ Postman environment import
Get the latest release from GitHub Releases.
- PostAI-x.x.x-arm64.dmg - For Apple Silicon Macs (M1/M2/M3)
Since the app is not yet code-signed, macOS will show a "damaged" warning. To fix this, run the following command in Terminal after copying PostAI to your Applications folder:
xattr -cr /Applications/PostAI.appThen open PostAI normally. This only needs to be done once after installation.
- Frontend: Electron + React + TypeScript + Vite
- Backend: Python Django (bundled via PyInstaller)
- UI: Tailwind CSS, React Flow, Monaco Editor
- Storage: SQLite
- Node.js 18+
- Python 3.11+
- npm or yarn
-
Install Node.js dependencies:
npm install
-
Setup Python backend:
cd backend python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt python manage.py migrate cd ..
-
Run in development mode:
# Terminal 1: Start Django backend cd backend source .venv/bin/activate python manage.py runserver 8765 # Terminal 2: Start Electron + React npm run electron:dev
Or use the combined command (requires backend setup first):
npm run electron:dev
npm run electron:buildThe built app will be in the release directory.
postai/
βββ electron/ # Electron main process
β βββ main.ts # Main entry point
β βββ preload.ts # IPC bridge
β βββ services/ # Django manager, etc.
βββ src/ # React frontend
β βββ components/ # UI components
β βββ stores/ # Zustand state
β βββ api/ # API client
β βββ types/ # TypeScript types
βββ backend/ # Django backend
β βββ collections_app/
β βββ environments_app/
β βββ requests_app/
β βββ workflows_app/
β βββ mcp_app/
β βββ ai_app/
β βββ proxy_app/
β βββ sync_app/
βββ resources/ # Icons, entitlements
- All HTTP methods (GET, POST, PUT, PATCH, DELETE, etc.)
- Headers, query params, and body editor
- Multiple body types (JSON, form-data, raw, binary)
- Authentication (Basic, Bearer, API Key, OAuth2)
- Response viewer with syntax highlighting
- Code snippet generation (cURL, Python, JavaScript, etc.)
- Collections and folders for organizing requests
- Workspaces for separating projects
- Deep search across collections, folders, and requests
- Drag and drop organization
- Multi-value variables with dropdown selection
- Link groups to switch related variables together
- Variable highlighting in URL and editors
- Import from Postman
- Drag-and-drop workflow canvas
- HTTP request nodes with environment selection
- Condition nodes for branching logic
- Variable nodes for data transformation
- Delay nodes for timing control
- Real-time execution with step-by-step results
- AI-powered request generation from natural language
- Chat assistant for API help
- Multiple providers (Anthropic, OpenAI, DeepSeek)
- Connect to MCP (Model Context Protocol) servers
- Browse and execute MCP tools
- Test your MCP server implementations
- Postman collection import
- Proxy configuration
- Request history
- Cloud sync
GET/POST /api/v1/collections/
GET/POST /api/v1/environments/
POST /api/v1/requests/execute/
GET /api/v1/health/
PostAI supports multiple values per environment variable. Instead of editing variables each time, you can:
- Add multiple values to a variable (e.g., multiple usernames)
- Use a dropdown to quickly switch between values
- The selected value is used when resolving
{{variable}}placeholders
To distribute the app without the "damaged" warning, you need to code sign and notarize it with Apple.
- Apple Developer Account ($99/year) - Sign up at https://developer.apple.com
- Developer ID Application certificate - Create in Apple Developer portal
- App-Specific Password - Generate at https://appleid.apple.com
-
Export your certificate from Keychain Access as a
.p12file -
Base64 encode the certificate:
base64 -i Certificates.p12 | pbcopy -
Add GitHub Secrets (Settings β Secrets β Actions):
APPLE_CERTIFICATE- Base64 encoded .p12 certificateAPPLE_CERTIFICATE_PASSWORD- Password for the .p12 fileAPPLE_ID- Your Apple ID emailAPPLE_APP_SPECIFIC_PASSWORD- App-specific passwordAPPLE_TEAM_ID- Your 10-character Team ID
-
Update
electron-builder.yml:mac: hardenedRuntime: true gatekeeperAssess: false entitlements: resources/entitlements.mac.plist entitlementsInherit: resources/entitlements.mac.plist notarize: teamId: ${env.APPLE_TEAM_ID}
-
Update GitHub workflow to import the certificate and set environment variables before building.
MIT