# Inline mode Users can interact with bots using inline queries, by starting a message with bot's username and then typing their query. ## Implementing inline mode First, you'll need to enable inline mode in [@BotFather](https://t.me/botfather), either in `/mybots` or with `/setinline` Then, you can use Dispatcher to [implement inline mode](../dispatcher/inline-mode.html) for your bot. Instead of Dispatcher, you can also use client events (however you will miss features that Dispatcher provides): ```ts tg.onInlineQuery.add(async (query) => { await query.answer([]) }) ``` ## Using inline mode As a user, you can use inline mode just like with a normal client. It is currently not implemented as a Client method, but you can use [Raw API](raw-api.html): ```ts const chat = await tg.resolvePeer('me') const results = await tg.call({ _: 'messages.getInlineBotResults', bot: toInputUser(await tg.resolvePeer('music'))!, peer: chat, query: 'vivaldi', offset: '' }, { throw503: true }) ``` Then, for example, to send the first result: ```ts const first = results.results[0] const res = await tg.call({ _: 'messages.sendInlineBotResult', peer: chat, randomId: randomLong(), queryId: results.queryId, id: first.id }) tg.handleClientUpdate(res, true) ```