title: What are the differences between Bot and Client?
body: <p>I've been going through some examples on how to make a Discord Python Bot and I've been seeing <code>client</code> and <code>bot</code> being used almost interchangeably and I'm not able to find when you would use which one when.</p>
  
  <p>For example:</p>
  
  <pre><code>client = discord.Client()
  @client.event
  async def on_message(message):
      # we do not want the bot to reply to itself
      if message.author == client.user:
          return
  
      if message.content.startswith('$guess'):
          await client.send_message(message.channel, 'Guess a number between 1 to 10')
  
      def guess_check(m):
          return m.content.isdigit()
  
  @client.event
  async def on_ready():
      print('Logged in as')
      print(client.user.name)
      print(client.user.id)
      print('------')
  
  client.run('token')
  </code></pre>
  
  <p>vs.</p>
  
  <pre><code>bot = commands.Bot(command_prefix='?', description=description)
  @bot.event
  async def on_ready():
      print('Logged in as')
      print(bot.user.name)
      print(bot.user.id)
      print('------')
  
  @bot.command()
  async def add(left : int, right : int):
      """Adds two numbers together."""
      await bot.say(left + right)
  
  bot.run('token')
  </code></pre>
  
  <p>I'm beginning to think they have very similar qualities and can do the same things but is a personal preference to go with a client vs. a bot. However they do have their differences where clients have an <code>on_message</code> while bots wait for a <code>prefix command</code>.</p>
  
  <p>Can someone please clarify the difference between <code>client</code> and <code>bot</code>?</p>