Developers

Build with Hidesay

The app’s code is open, bots have a public API, and there’s a Python library that does the encryption for you.

A bot that replies, with hidesay-bot
from hidesay_bot import Bot

bot = Bot()  # reads the token from HIDESAY_BOT_TOKEN


@bot.command("start", description="Say hi")
async def start(message):
    await message.reply("Hi! Write to me and I'll say it back.")


@bot.on_message()
async def echo(message):
    await message.reply(message.text)


bot.run()

The app’s code is open

You don’t have to take our word for how the app locks, unlocks and signs messages: the code is public and you can read it.

  • The client, meaning the app that runs on your phone, is on GitHub
  • The encryption happens there: that’s where you can verify it
  • Those who can read code check it, those who can’t can count on those who do
Repository link coming soon

The Bot API

A bot is an account run by your own program. You create it from the app, get a token, and from there it talks to the server through a documented HTTP API.

  • Receives messages via long polling or a webhook
  • Sends, edits and deletes messages, buttons included
  • Has its own command menu, the ones that start with /
  • Can publish its own PGP key: private chats with the bot stay protected like the ones between people
  • Has an OpenAPI spec: generate the client in the language you prefer

hidesay-bot, the Python library

The whole Bot API in Python, with the encryption already done: messages reach your handlers in plain text and replies go out locked for whoever needs to read them.

  • Every Bot API operation, sync and async
  • Commands, buttons, long polling and webhooks
  • Automatic OpenPGP: opens, verifies, locks and signs messages for you
  • Retries without duplicates and proper waits when the server asks
  • MIT license

Your first bot

  1. Create the bot

    In the app, message @bot and tap Create a bot.

  2. Copy the token

    You only see it once: keep it in an environment variable, never in your code or in a chat.

  3. Run it

    Install hidesay-bot, save the example as bot.py, run it and message your bot from the app.