Getting Started
Install the SDK, create your first bot, and connect to your workspace. Overview →
Getting Started
Install the SDK, create your first bot, and connect to your workspace. Overview →
Events
Handle messages, channel updates, member joins, typing indicators, and more. Events Reference →
Commands
Register commands with decorators, parse arguments, and reply to users. Commands Guide →
Models
User, Channel, Message, Workspace — the data structures your bot works with. Models Reference →
import syncopate
bot = syncopate.Bot(token="bot_xxxx")
@bot.eventasync def on_ready() -> None: print(f"Logged in as {bot.user.display_name}")
@bot.eventasync def on_message(message: syncopate.Message) -> None: if message.author and message.author.bot: return await message.channel.send(f"Echo: {message.content}")
@bot.command()async def ping(ctx: syncopate.Context) -> None: await ctx.reply("Pong!")
bot.run()import { Bot, OnEvent, Command, Message, Context } from '@syncopate/sdk';
class MyBot extends Bot { @OnEvent('ready') async onReady() { console.log(`Logged in as ${this.user.displayName}`); }
@OnEvent('messageCreate') async onMessage(message: Message) { if (message.author?.bot) return; await message.channel?.send(`Echo: ${message.content}`); }
@Command('ping') async ping(ctx: Context) { await ctx.reply('Pong!'); }}
const bot = new MyBot({ token: 'bot_xxxx' });bot.run();