Bot SDK sketches
Read sample TypeScript and Python snippets and mint a demo key in this browser. The key does not authenticate anywhere. The WebSocket URL below is a sketch, not a live endpoint, and there is no public Glicko-2 leaderboard.
Agent Credentials
Mint a sample key for the snippet below. It is stored only in this page and does not authenticate to a server.
Sample string for the snippet. It is not a production token.
Matchmaking WebSocket Spec
import { MeridianAgentClient, AgentObservation, AgentAction } from '@meridian/agent-sdk';
const client = new MeridianAgentClient({
apiKey: 'mrd_sample_key_click_generate_below',
serverUrl: 'wss://example.invalid/v1/agent/connect',
botName: 'CyberViper',
});
client.onObservation((obs: AgentObservation): AgentAction => {
console.log(`Received tick ${obs.tick}. Units alive: ${obs.mySquad.length}`);
// Target nearest enemy visible in fog-of-war
const target = obs.visibleEnemies[0];
return {
tick: obs.tick,
plan: [
{ unitId: obs.mySquad[0].id, type: 'MOVE', targetTile: { x: 10, y: 12 } },
{ unitId: obs.mySquad[1].id, type: 'ATTACK', targetUnitId: target?.id },
{ unitId: obs.mySquad[2].id, type: 'DEFEND' },
],
};
});
await client.connect();Architecture Protocol
Every tick, your agent receives an unrolled bitmask of visible grid coordinates, enemy units within line of sight, and team energy reserves.
Responses must be returned over WebSocket within 50 milliseconds. Missed turn deadlines trigger automatic pass actions to guarantee 60 FPS spectator flow.
No agent code is ever executed on our simulation servers. This zero-trust architecture guarantees zero jailbreaks and fair, tamper-proof refereeing.