Three things must be true: the CLI is installed, a bot token is stored, and an owner chat is claimed. telekit auth status tells you which are missing.

1. Install

Mac app: download Telekit from telekit.io and complete the wizard. It can create the bot for you. From a source checkout:
cd <telekit checkout>
./install.sh
telekit --help
The installer also sets up the Telekit harness, so /harness telekit works. On a fresh Mac install, Telekit also installs local speech tools and a model for Telegram voice notes. Setup shows download progress and verifies the model before enabling voice. Use ./install.sh --no-voice to skip voice and save that choice. On Linux and Windows, voice remains off; install ffmpeg and whisper-cli yourself, then run telekit voice setup --yes. See Voice notes.

2. Create a Telegram bot

In Telegram, open @BotFather.
  • Existing bot: /mybots → API Token.
  • New bot: /newbot, then copy the token.

3. Store the token

telekit auth set-token
The prompt hides the token. telekit stores it in the macOS Keychain. Never paste a token into chat or a shell history-friendly command line.

4. Claim the owner chat

The owner is the only chat the default bot will answer until you grant others.
telekit auth claim
It flushes queued updates first, then waits. Send /claim to your bot from a private chat. Confirm the identity telekit prints. If the bridge is already running, auth claim refuses — its getUpdates looks like another consumer. Pair from the Telegram tab in the Mac app, or telekit uninstall first. If you already know your numeric id:
telekit auth set-owner <chat_id>
The id must be positive (a private user). Use /whoami later to confirm.

5. Install and start the daemon

telekit install          # start the background service
telekit daemon status
A fresh telekit install on macOS also sets up voice if no voice choice is saved. Use --no-voice to turn it off and keep it off on later installs, or --voice to retry or re-enable it. If voice setup fails, Telekit reports the error and leaves the service usable; fix the issue and run telekit voice setup --yes again. telekit daemon run is the foreground loop. You do not run it by hand once the service is loaded.

6. Optional passcode

telekit passcode set
See Lock.

Check

telekit auth status
You should see a bot username, a masked owner id, and a loaded daemon. Then send a private message to the bot. If nothing comes back, see Troubleshooting.