Browser-native AI agents with zero-config identity
Deploy autonomous AgentGPT agents in the browser without API keys, server infrastructure, or credential management. Ed25519 DIDs generated automatically, XorIDA-secured execution state, IndexedDB persistence.
Server Infrastructure Blocks Rapid Prototyping
Traditional autonomous agent frameworks require server deployment, API key management, and complex credential rotation. For students, hobbyists, and rapid prototyping, this creates unnecessary friction.
Deploy server (Heroku, AWS, DigitalOcean) ↓ Configure environment variables (API keys, tokens) ↓ Set up credential rotation (keys expire, must refresh) ↓ Monitor for cascading failures (one expired key = system-wide restart)
AgentGPT xLink eliminates this entirely. Agents run in the browser with zero-config cryptographic identity.
Create BrowserAgent instance ↓ Call initialize() — Ed25519 DID generated automatically ↓ Run agent autonomously — no servers, no keys, no configuration ↓ State persists in IndexedDB — resume on page reload
Browser-native — No server required, no cloud costs
Resumable sessions — Close browser, reopen, continue where you left off
Audit trails — Every agent decision logged with HMAC chain
Deploy Agent in 60 Seconds
Installation
npm install @private.me/agentgpt-xlink
Basic Usage
import { BrowserAgent } from '@private.me/agentgpt-xlink'; // Create agent with zero-config identity const agent = new BrowserAgent({ name: 'ResearchBot', role: 'Autonomous Researcher', goals: [ 'Research quantum computing trends', 'Summarize top 5 papers', 'Create presentation', ], maxSteps: 25, verbose: true }); // Initialize (generates Ed25519 DID automatically) await agent.initialize(); console.log(`Agent DID: ${agent.getDID()}`); // Run autonomously const result = await agent.run(); if (result.ok) { console.log('Steps executed:', result.value.stepsExecuted); console.log('Goals completed:', result.value.goalsCompleted); console.log('Execution time:', result.value.executionTime, 'ms'); }
That's it. No servers, no API keys, no environment variables.
Purchase & Subscription
3-month trial — No credit card required. Start deploying browser-native AI agents with cryptographic identity immediately.
Tiers
Standard pricing: $5/month Basic • $10/month Middle • $15/month Enterprise
- Basic ($5/month) — AgentGPT integration, identity auth for agents, browser-native deployment, IndexedDB persistence
- Middle ($10/month) — Everything in Basic + advanced task policies, custom agent controls, multi-agent coordination
- Enterprise ($15/month) — Everything in Middle + air-gapped deployment + white-label branding + compliance support
Volume discounts: 10-30% off for 5+ ACIs
Annual prepay: Additional 10-15% discount
API Purchase Endpoint
Programmatic subscription via REST API:
POST /api/purchase Content-Type: application/json { "product": "agentgpt-xlink", "tier": "basic", "email": "user@example.com" }
Success Response
{
"status": "success",
"subscription_id": "sub_1TQvQXBMvV...",
"tier": "basic",
"trial_end": "2026-07-28T12:00:00Z",
"billing_start": "2026-07-29T00:00:00Z"
}
Error Responses (RFC 7807)
{
"type": "https://private.me/errors/invalid-tier",
"title": "Invalid Subscription Tier",
"status": 400,
"detail": "Tier must be 'basic', 'middle', or 'enterprise'",
"instance": "/api/purchase/req-abc123",
"fields": {
"tier": "Invalid value 'premium'. Expected 'basic', 'middle', or 'enterprise'."
}
}
Common Error Types
- invalid-tier — Tier must be 'basic', 'middle', or 'enterprise'
- invalid-email — Email format validation failed
- duplicate-subscription — Active subscription already exists for this email
Basic Autonomous Agent
import { BrowserAgent } from '@private.me/agentgpt-xlink'; const agent = new BrowserAgent({ name: 'DataAnalyzer', role: 'Data Analyst', goals: ['Load dataset', 'Analyze trends', 'Generate report'], maxSteps: 20 }); await agent.initialize(); console.log(`DID: ${agent.getDID()}`); const result = await agent.run(); if (result.ok) { console.log('Agent completed successfully'); }
Resumable Execution
// Create snapshot at any point const snapshotResult = await agent.createSnapshot( 5, // step number { currentGoal: 'Analyze trends', progress: 0.4 } ); if (snapshotResult.ok) { console.log('Snapshot ID:', snapshotResult.value); } // Restore from snapshot later (even after page reload) const restoreResult = await agent.restoreSnapshot(snapshotId); if (restoreResult.ok) { console.log('Restored state:', restoreResult.value); }
State snapshots are XorIDA-split (2-of-3 threshold) and stored in IndexedDB. Close browser, reopen, resume execution.
HMAC-Chained Decision Logs
// Get complete audit trail const auditLog = agent.getAuditLog(); auditLog.forEach(entry => { console.log(`Step ${entry.step}: ${entry.action}`); console.log(`HMAC: ${entry.hmac.slice(0, 16)}...`); });
Every agent decision is logged with HMAC integrity verification. Audit trail provides cryptographic proof of agent behavior.
Parallel Agent Execution
// Create multiple independent agents const researcher = new BrowserAgent({ name: 'Researcher', goals: [...] }); const analyzer = new BrowserAgent({ name: 'Analyzer', goals: [...] }); const writer = new BrowserAgent({ name: 'Writer', goals: [...] }); // Initialize all agents await Promise.all([ researcher.initialize(), analyzer.initialize(), writer.initialize() ]); // Run agents in parallel const results = await Promise.all([ researcher.run(), analyzer.run(), writer.run() ]); console.log('All agents completed', results);
Core API
BrowserAgent
- constructor(config, storage?) — Create agent with configuration and optional storage adapter
- initialize() — Generate Ed25519 DID and initialize session (returns Result<string, Error> with session ID)
- run() — Execute agent autonomously (returns Result<BrowserExecutionResult, Error>)
- getDID() — Get agent's decentralized identifier (DID)
- getSessionId() — Get current session ID
- createSnapshot(step, state) — Create XorIDA-split state snapshot (returns Result<string, Error> with snapshot ID)
- restoreSnapshot(id) — Restore state from snapshot (returns Result<Record, Error>)
- getAuditLog() — Get HMAC-chained audit trail (returns BrowserAuditEntry[])
- getSnapshots() — Get all state snapshots (returns BrowserStateSnapshot[])
- clearSession() — Clear session and local data (returns Result<void, Error>)
IndexedDB Storage Adapter
import { IndexedDBStorage } from '@private.me/agentgpt-xlink'; // Create custom storage instance const storage = new IndexedDBStorage(); await storage.initialize(); // Use with agent const agent = new BrowserAgent(config, storage);
BrowserStorageAdapter Interface
- initialize() — Initialize storage connection
- saveSession(session) — Save session metadata
- loadSession(sessionId) — Load session metadata
- saveSnapshot(snapshot) — Save state snapshot
- loadSnapshot(snapshotId) — Load state snapshot
- listSnapshots(sessionId) — List all snapshots for session
- clearSession(sessionId) — Delete session and all snapshots
Result Type Pattern
All async operations return Result<T, Error>:
const result = await agent.run(); if (result.ok) { // result.value contains BrowserExecutionResult console.log('Success:', result.value); } else { // result.error contains AgentGPTError console.error('Failed:', result.error.message); }
Real-World Use Cases
Educational Projects
Students learning AI agent concepts deploy autonomous agents without server infrastructure. Zero setup friction, immediate results.
// Student builds research agent for class project const agent = new BrowserAgent({ name: 'ClassProject', goals: ['Research topic', 'Summarize findings', 'Create presentation'] }); await agent.initialize(); const result = await agent.run(); // No server deployment, no API keys, no infrastructure costs
Rapid Prototyping
Developers prototype agent behaviors without cloud deployment. Test ideas instantly, iterate quickly.
Hobbyist Experimentation
Hobbyists explore autonomous agent concepts without AWS bills or credential complexity. Browser-native execution, IndexedDB persistence.