Skip to main content

Ultra-simple Discord API wrapper with direct button() and row() functions

Project description

Aiko API 🎯

Ultra-simple Discord bot development with direct button() and row() functions.

from aiko_api import Bot, button, row

bot = Bot(command_prefix="!")

@bot.slash()
async def hello(ctx):
    btn = button("Click me!", "btn", style="success")
    await ctx.respond("Hello!", components=[row(btn)])

bot.run("YOUR_TOKEN")

🚀 Quick Start

pip install aiko-api
from aiko_api import Bot, button, row

bot = Bot(command_prefix="!")

@bot.slash()
async def hello(ctx):
    my_btn = button("Click me!", "btn", style="success")
    await ctx.respond("Hello!", components=[row(my_btn)])

bot.run("YOUR_TOKEN")

✨ Features

  • Direct button() and row() functions - no complex builders
  • 🎯 Ultra-simple syntax - minimal code, maximum functionality
  • 📝 Clean decorators - @bot.slash(), @bot.slash.on_click()
  • 🔄 Full asyncio support - modern async/await
  • 🚀 Zero boilerplate - get started in seconds
  • 📦 Lightweight - only what you need

🎯 Why Aiko API?

Before (Other Libraries)

# Complex, verbose syntax
button = Button(
    style=ButtonStyle.SUCCESS,
    label="Click me!",
    custom_id="btn"
)
row = ActionRow(components=[button])

After (Aiko API)

# Ultra-simple, intuitive
btn = button("Click me!", "btn", style="success")
row = row(btn)

📚 Examples

Basic Button

@bot.slash()
async def basic(ctx):
    btn = button("Click me!", "btn", style="success")
    await ctx.respond("Hello!", components=[row(btn)])

@bot.slash.on_click("btn")
async def handle_click(ctx):
    await ctx.respond("Clicked! 🎉")

Multiple Buttons

@bot.slash()
async def colors(ctx):
    red = button("Red", "red", style="danger")
    blue = button("Blue", "blue", style="primary")
    await ctx.respond("Pick:", components=[row(red, blue)])

Embed + Buttons

@bot.slash()
async def dashboard(ctx):
    from aiko_api.common.models import Embed
    
    embed = Embed(title="Dashboard", color=0x00ff00)
    play_btn = button("Play", "play", style="success")
    
    await ctx.respond(embed=embed, components=[row(play_btn)])

🎯 Direct Functions

The magic is in the direct functions:

from aiko_api import button, row

# Create buttons anywhere - no bot needed!
btn1 = button("Primary", "btn1", style="primary")
btn2 = button("Danger", "btn2", style="danger")
my_row = row(btn1, btn2)

📖 Documentation

🛠️ Installation

pip install aiko-api

🔧 Requirements

  • Python 3.8+
  • asyncio
  • curl_cffi

📄 License

MIT License - see LICENSE file for details.

🎯 Mission

Make Discord bot development ultra-simple while maintaining full functionality. No complex builders, no verbose syntax - just direct, intuitive functions that work!


Aiko API - Discord bots made simple 🎯

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiko_api-0.1.6.tar.gz (204.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiko_api-0.1.6-py3-none-any.whl (69.5 kB view details)

Uploaded Python 3

File details

Details for the file aiko_api-0.1.6.tar.gz.

File metadata

  • Download URL: aiko_api-0.1.6.tar.gz
  • Upload date:
  • Size: 204.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for aiko_api-0.1.6.tar.gz
Algorithm Hash digest
SHA256 35b868d666c11e26a37182b856d08ecff8d49498e087888b9c8a21b38dc785a1
MD5 2e4aa720b5e47cc92cdef383dc8a68b6
BLAKE2b-256 43426e9dddf8e32d1bce3376e05a190823579692d470fb8938fe6894e72f8b65

See more details on using hashes here.

File details

Details for the file aiko_api-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: aiko_api-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 69.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for aiko_api-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 21ce134c0d7b4f055fbbe5cb6796ebee4084c601805bd80c3f291d6ab5b9ad33
MD5 62a31d5ca80ca32d37ddc63bd4b91ccd
BLAKE2b-256 991ba678022011b3ed58d36361176c4eda1bf31e49c9c9cf06bfc9154a79ac2f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page