Antybrowser SDK
Official SDKs for the Antybrowser Local API — 23 languages, one API.
Install
| Language |
Registry |
Install |
| TypeScript / JavaScript |
npm |
npm install @antybrowser/sdk |
| Python |
PyPI |
pip install antybrowser |
| C# / .NET |
NuGet |
dotnet add package Antybrowser.SDK |
| Go |
Go Modules |
go get github.com/antybrowser/SDK/go |
| PHP |
Packagist |
composer require antybrowser/sdk |
| Ruby |
RubyGems |
gem install antybrowser |
| Perl |
CPAN |
cpan Antybrowser::SDK |
| Java |
Maven Central |
See Java README
|
| Kotlin |
Maven Central |
See Kotlin README
|
| Rust |
crates.io |
cargo add antybrowser |
| Dart / Flutter |
pub.dev |
dart pub add antybrowser |
| Swift |
Swift Package Manager |
See Swift README
|
| Elixir |
Hex |
mix deps.get antybrowser |
| Lua |
LuaRocks |
luarocks install antybrowser |
| Julia |
Julia Packages |
Pkg.add("Antybrowser") |
| R |
CRAN |
install.packages("antybrowser") |
| Haskell |
Hackage |
cabal install antybrowser-sdk |
| OCaml |
OPAM |
opam install antybrowser |
| Nim |
Nimble |
nimble install antybrowser |
| Zig |
Zig Network |
See Zig README
|
| C / C++ |
vcpkg / Conan |
See C++ README
|
| PureScript |
Pursuit |
spago install antybrowser |
| Raku |
Raku Modules |
zef install Antybrowser::SDK |
| D |
DUB |
dub fetch antybrowser |
Prerequisites
-
Antybrowser desktop app running with the Local API enabled
- An API key from Antybrowser Settings → API
- Default port: 5173 (configurable per client)
Quick Start
TypeScript / JavaScript
import { AntybrowserClient } from "@antybrowser/sdk";
const client = new AntybrowserClient({ apiKey: "your_key", port: 5173 });
const profiles = await client.getProfiles();
console.log(profiles);
const result = await client.startProfile(123);
console.log(`Debug port: ${result.data.debugPort}`);
Python
import asyncio
from antybrowser import AntybrowserClient, CreateProfileRequest
async def main():
async with AntybrowserClient(api_key="your_key") as client:
profiles = await client.get_profiles()
result = await client.start_profile(123)
print(f"Debug port: {result.data.debug_port}")
asyncio.run(main())
C# / .NET
using Antybrowser.SDK;
using var client = new AntybrowserClient("your_api_key");
var profiles = await client.GetProfilesAsync();
var result = await client.StartProfileAsync(123);
Console.WriteLine($"Debug port: {result.Data.DebugPort}");
Go
import antybrowser "github.com/antybrowser/SDK/go"
client := antybrowser.NewClient("your_key", antybrowser.WithPort(5173))
profiles, _ := client.GetProfiles()
result, _ := client.StartProfile(123)
fmt.Printf("Debug port: %d\n", result.Data.DebugPort)
PHP
use Antybrowser\SDK\AntybrowserClient;
$client = new AntybrowserClient(apiKey: 'your_key');
$profiles = $client->getProfiles();
$result = $client->startProfile(123);
echo "Debug port: {$result['data']['debugPort']}\n";
Ruby
require "antybrowser"
client = Antybrowser::Client.new("your_key")
profiles = client.get_profiles
result = client.start_profile(123)
puts "Debug port: #{result['data']['debugPort']}"
Java
import com.antybrowser.sdk.*;
var client = new AntybrowserClient("your_key");
var profiles = client.getProfiles();
var result = client.startProfile(123);
System.out.println("Debug port: " + result.getDebugPort());
Rust
use antybrowser::AntybrowserClient;
let client = AntybrowserClient::new("your_key")?;
let profiles = client.get_profiles()?;
let result = client.start_profile(123)?;
println!("Debug port: {:?}", result.data.debug_port);
Haskell
import Antybrowser
main = do
client <- newClient "your_key" Nothing Nothing Nothing
profiles <- getProfiles client
print profiles
C++
#include <antybrowser/antybrowser.hpp>
antybrowser::AntybrowserClient client("your_key");
auto profiles = client.getProfiles();
auto result = client.startProfile(123);
std::cout << "Debug port: " << result["data"]["debugPort"] << std::endl;
Configuration
Every SDK supports the same options:
| Option |
Default |
Description |
apiKey |
(required) |
Your Antybrowser API key |
port |
5173 |
Local API port |
baseUrl |
http://127.0.0.1:{port} |
Full URL override |
timeout |
30s |
Request timeout |
API Methods
All 23 SDKs implement the same 26 endpoints:
System
| Method |
Description |
getStatus() |
Health check (no auth) |
getSettings() |
Get all settings |
getSyncStatus() |
Sync queue status |
refreshSync(profileId?) |
Trigger sync |
Profiles
| Method |
Description |
getProfiles() |
List all profiles |
createProfile(data) |
Create a profile |
updateProfile(id, data) |
Update a profile |
deleteProfile(id) |
Delete a profile |
startProfile(id) |
Start → returns debug port |
stopProfile(id) |
Stop running profile |
duplicateProfile(id) |
Clone a profile |
Automations
| Method |
Description |
getAutomations() |
List automations |
runAutomation(id, data) |
Run automation on profile |
Groups
| Method |
Description |
getGroups() |
List groups |
createGroup(data) |
Create group |
updateGroup(id, data) |
Update group |
deleteGroup(id) |
Delete group |
Proxies
| Method |
Description |
getProxies() |
List proxies |
createProxy(data) |
Add proxy (validates) |
checkProxy(data) |
Test single proxy |
checkProxiesBulk(proxies) |
Test multiple proxies |
deleteProxy(id) |
Delete proxy |
Extensions
| Method |
Description |
getExtensions() |
List extensions |
deleteExtension(id) |
Delete extension |
getProfileExtensions(id) |
Get profile extensions |
setProfileExtensions(id, ids) |
Set profile extensions |
Error Handling
Every SDK has a typed error class with statusCode and responseBody:
// TypeScript
import { AntybrowserError } from "@antybrowser/sdk";
try { ... } catch (e) {
if (e instanceof AntybrowserError) {
console.error(e.statusCode, e.responseBody);
}
}
# Python
from antybrowser import AntybrowserError
try: ...
except AntybrowserError as e:
print(e.status_code, e.response_body)
Publishing
See PUBLISHING.md for the full checklist — registry tokens, first-time setup, and version bump workflow.
Additional Registries & Backlinks
Beyond the 23 language registries, list your package here for discoverability:
| Platform |
Type |
Action |
| Libraries.io |
Package aggregator |
Auto-indexes — verify listing |
| OpenLib |
Package catalog |
Auto-indexes from registries |
| JSR |
TS registry (Deno) |
npx jsr publish |
| GitHub Packages |
GH registry |
gh package publish |
| Product Hunt |
Launch platform |
Submit as product |
| Hacker News |
Community |
Post "Show HN" |
| Dev.to |
Developer blog |
Write launch article |
| Reddit |
Community |
r/programming, r/python, r/webdev |
| Indie Hackers |
Founder community |
Share story |
| Awesome lists |
Curated lists |
PR to relevant repos |
| Smithery |
AI tool registry |
Submit at smithery.ai/new |
| Glama |
MCP directory |
Auto-indexed from GitHub topics |
| SourceForge |
Code hosting |
Mirror repo |
| CodeProject |
Developer articles |
Write tutorial |
Project Structure
SDK/
├── npm/ @antybrowser/sdk (TypeScript/JavaScript)
├── py/ antybrowser (Python)
├── nuget/ Antybrowser.SDK (C#/.NET)
├── go/ github.com/antybrowser/SDK/go
├── php/ antybrowser/sdk (Composer)
├── ruby/ antybrowser (RubyGems)
├── perl/ Antybrowser::SDK (CPAN)
├── java/ com.antybrowser:antybrowser-sdk (Maven)
├── kotlin/ com.antybrowser:antybrowser-sdk (Maven/Kotlin DSL)
├── rust/ antybrowser (crates.io)
├── dart/ antybrowser (pub.dev)
├── swift/ AntybrowserSDK (Swift Package Manager)
├── elixir/ antybrowser (Hex)
├── lua/ antybrowser (LuaRocks)
├── julia/ Antybrowser (Julia Packages)
├── r/ antybrowser (CRAN)
├── haskell/ antybrowser-sdk (Hackage)
├── ocaml/ antybrowser (OPAM)
├── nim/ antybrowser (Nimble)
├── zig/ antybrowser (Zig Network)
├── cpp/ antybrowser (vcpkg/Conan)
├── purescript/ antybrowser (Pursuit)
├── raku/ Antybrowser::SDK (Raku Modules)
├── d/ antybrowser (DUB)
└── .github/ CI/CD workflows
License
MIT