{"id":13557968,"url":"https://github.com/errbotio/errbot","last_synced_at":"2025-05-11T03:49:35.230Z","repository":{"id":3343046,"uuid":"4387547","full_name":"errbotio/errbot","owner":"errbotio","description":"Errbot is a chatbot, a daemon that connects to your favorite chat service and bring your tools and some fun into the conversation.","archived":false,"fork":false,"pushed_at":"2025-04-29T16:28:48.000Z","size":5598,"stargazers_count":3184,"open_issues_count":67,"forks_count":623,"subscribers_count":74,"default_branch":"master","last_synced_at":"2025-05-11T03:49:29.144Z","etag":null,"topics":["automation","chat","chatbot","chatbots","chatops","devops","hacktoberfest","hacktoberfest2020","python","python3"],"latest_commit_sha":null,"homepage":"http://errbot.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/errbotio.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES-4x.rst","contributing":"docs/contributing.rst","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2012-05-20T21:13:41.000Z","updated_at":"2025-05-08T09:28:22.000Z","dependencies_parsed_at":"2023-02-18T15:50:27.393Z","dependency_job_id":"fa9041ad-fd44-464b-a71d-d07562d19589","html_url":"https://github.com/errbotio/errbot","commit_stats":{"total_commits":2508,"total_committers":223,"mean_commits":"11.246636771300448","dds":0.6255980861244019,"last_synced_commit":"5c2bb119e08bb16e048d2531d0675d8f0c7e731a"},"previous_names":[],"tags_count":87,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errbotio%2Ferrbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errbotio%2Ferrbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errbotio%2Ferrbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/errbotio%2Ferrbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/errbotio","download_url":"https://codeload.github.com/errbotio/errbot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253514559,"owners_count":21920334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","chat","chatbot","chatbots","chatops","devops","hacktoberfest","hacktoberfest2020","python","python3"],"created_at":"2024-08-01T12:04:39.299Z","updated_at":"2025-05-11T03:49:35.212Z","avatar_url":"https://github.com/errbotio.png","language":"Python","funding_links":[],"categories":["Python","聊天工具","devops","python3","Uncategorized"],"sub_categories":["Uncategorized"],"readme":".. image:: https://errbot.readthedocs.org/en/latest/_static/errbot.png\n   :target: http://errbot.io\n\n|\n\n.. image:: https://github.com/errbotio/errbot/workflows/Python%20package/badge.svg\n   :target: https://github.com/errbotio/errbot/actions\n\n\n.. image:: https://img.shields.io/pypi/v/errbot.svg\n   :target: https://pypi.python.org/pypi/errbot\n   :alt: Latest Version\n\n.. image:: https://img.shields.io/badge/License-GPLv3-green.svg\n   :target: https://pypi.python.org/pypi/errbot\n   :alt: License\n\n.. image:: https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg\n   :target: https://gitter.im/errbotio/errbot?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge\n   :alt: Join the chat at https://gitter.im/errbotio/errbot\n\n|\n\n\nErrbot\n======\n\nErrbot is a chatbot. It allows you to start scripts interactively from your chatrooms\nfor any reason: random humour, chatops, starting a build, monitoring commits, triggering\nalerts...\n\nIt is written and easily extensible in Python.\n\nErrbot is available as open-source software and released under the GPL v3 license.\n\n\nFeatures\n--------\n\nChat servers support\n~~~~~~~~~~~~~~~~~~~~\n\n**Built-in**\n\n- IRC support\n- `Telegram support \u003chttps://www.telegram.org/\u003e`_\n- `XMPP support \u003chttp://xmpp.org\u003e`_\n\n**With add-ons**\n\n- `Slack support \u003chttps://slack.com/\u003e`_ (See `instructions \u003chttps://github.com/errbotio/err-backend-slackv3\u003e`__)\n- `Discord \u003chttps://www.discordapp.com/\u003e`_ (See `instructions \u003chttps://github.com/errbotio/err-backend-discord\u003e`__)\n- `Gitter support \u003chttps://gitter.im/\u003e`_ (See `instructions \u003chttps://github.com/errbotio/err-backend-gitter\u003e`__)\n- `Webex \u003chttps://www.webex.com/\u003e`_ (See `instructions \u003chttps://github.com/marksull/err-backend-cisco-webex-teams\u003e`__)\n- `Mattermost \u003chttps://about.mattermost.com/\u003e`_ (See `instructions \u003chttps://github.com/Vaelor/errbot-mattermost-backend\u003e`__)\n- `RocketChat \u003chttps://rocket.chat/\u003e`_ (See `instructions \u003chttps://github.com/cardoso/errbot-rocketchat\u003e`__)\n- `Skype \u003chttps://www.skype.com/\u003e`_ (See `instructions \u003chttps://github.com/errbotio/errbot-backend-skype\u003e`__)\n- `TOX \u003chttps://tox.im/\u003e`_ (See `instructions \u003chttps://github.com/errbotio/err-backend-tox\u003e`__)\n- `VK \u003chttps://vk.com/\u003e`_ (See `instructions \u003chttps://github.com/Ax3Effect/errbot-vk\u003e`__)\n- `Zulip \u003chttps://zulipchat.com/\u003e`_ (See `instructions \u003chttps://github.com/zulip/errbot-backend-zulip\u003e`__)\n\n\nAdministration\n~~~~~~~~~~~~~~\n\nAfter the initial installation and security setup, Errbot can be administered by just chatting to the bot (chatops).\n\n- install/uninstall/update/enable/disable private or public plugins hosted on git\n- plugins can be configured from chat\n- direct the bot to join/leave Multi User Chatrooms (MUC)\n- Security: ACL control feature (admin/user rights per command)\n- backup: an integrated command !backup creates a full export of persisted data.\n- logs: can be inspected from chat or streamed to Sentry.\n\nDeveloper features\n~~~~~~~~~~~~~~~~~~\n\n- Very easy to extend in Python! (see below)\n- Presetup storage for every plugin i.e. ``self['foo'] = 'bar'`` persists the value.\n- Conversation flows to track conversation states from users.\n- Webhook callbacks support\n- supports `markdown extras \u003chttps://markdown-extra.readthedocs.io/\u003e`_ formatting with tables, embedded images, links etc.\n- configuration helper to allow your plugin to be configured by chat\n- Text development/debug consoles\n- Self-documenting: your docstrings become help automatically\n- subcommands and various arg parsing options are available (re, command line type)\n- polling support: your can setup a plugin to periodically do something\n- end to end test backend\n- card rendering under Slack\n\nCommunity and support\n---------------------\n\nIf you have:\n\n- a quick question feel free to join us on chat at `errbotio/errbot on Gitter \u003chttps://gitter.im/errbotio/errbot\u003e`_.\n- a plugin development question please use `Stackoverflow \u003chttp://stackoverflow.com/questions/tagged/errbot\u003e`_ with the tags `errbot` and `python`.\n- a bug to report or a feature request, please use our `GitHub project page \u003chttps://github.com/errbotio/errbot/issues\u003e`_.\n\nYou can also ping us on Twitter with the hashtag ``#errbot``.\n\n\nInstallation\n------------\n\nPrerequisites\n~~~~~~~~~~~~~\n\nErrbot runs under Python 3.6+ on Linux, Windows and Mac. For some chatting systems you'll need a key or a login for your bot to access it.\n\nQuickstart\n~~~~~~~~~~\n\nWe recommend to setup a `virtualenv \u003chttps://pypi.python.org/pypi/virtualenv\u003e`_.\n\n1. Install `errbot` from pip\n2. Make a directory somewhere (here called `errbot`) to host Errbot's data files\n3. Initialize the directory\n4. Try out Errbot in text mode\n\n.. code:: bash\n\n    $ pip install errbot\n    $ mkdir errbot; cd errbot\n    $ errbot --init\n    $ errbot\n\nIt will show you a prompt `\u003e\u003e\u003e` so you can talk to your bot directly! Try `!help` to get started.\n\nAdding support for a chat system\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nFor the built-ins, just use one of those options `telegram, IRC, XMPP` with pip, you can still do it\nafter the initial installation to add the missing support for example ::\n\n   $ pip install \"errbot[irc]\"\n\nFor the external ones (Slack, Discord, Gitter, Skype, etc ...), please follow their respective github pages for instructions.\n\nConfiguration\n~~~~~~~~~~~~~\n\nIn order to configure Errbot to connect to one of those chat systems you'll need to tweak the `config.py` file generated\nby `errbot --init`.\n\nTo help you, we have a documented template available here: `config-template.py \u003chttps://raw.githubusercontent.com/errbotio/errbot/master/errbot/config-template.py\u003e`_.\n\nNote: even if you changed the BACKEND from the configuration, you can still use `errbot -T` to test\nout your instance locally in text mode.\n\nStarting Errbot as a daemon\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf all that worked, you can now use the -d (or --daemon) parameter to run it in a\ndetached mode:\n\n.. code:: bash\n\n    errbot --daemon\n\nInteracting with the Bot\n------------------------\n\nAfter starting Errbot, you should add the bot to your buddy list if you haven't already.\nYou'll need to invite the bot explicitly to chatrooms on some chat systems too.\nYou can now send commands directly to the bot!\n\nTo get a list of all available commands, you can issue:\n\n.. code:: bash\n\n    !help\n\nIf you just wish to know more about a specific command you can issue:\n\n.. code:: bash\n\n    !help command\n\nManaging plugins\n~~~~~~~~~~~~~~~~\n\nYou can administer the bot in a one-on-one chat if your handle is in the BOT_ADMINS list in `config.py`.\n\nFor example to keyword search in the public plugin repos you can issue:\n\n.. code:: bash\n\n    !repos search jira\n\nTo install a plugin from this list, issue:\n\n.. code:: bash\n\n    !repos install \u003cname of repo\u003e\n\n\nFor example `!repos install errbotio/err-imagebot`.\n\nWriting plugins\n---------------\n\nWriting your own plugins is extremely simple. `errbot --init` will have installed in the `plugins` subdirectory a plugin\ncalled `err-example` you can use as a base.\n\nAs an example, this is all it takes to create a \"Hello, world!\" plugin for Errbot:\n\n.. code:: python\n\n    from errbot import BotPlugin, botcmd\n\n    class Hello(BotPlugin):\n        \"\"\"Example 'Hello, world!' plugin for Errbot\"\"\"\n\n        @botcmd\n        def hello(self, msg, args):\n            \"\"\"Return the phrase \"Hello, world!\" to you\"\"\"\n            return \"Hello, world!\"\n\nThis plugin will create the command \"!hello\" which, when issued, returns \"Hello, world!\"\nto you. For more info on everything you can do with plugins, see the\n`plugin development guide \u003chttps://errbot.io/en/latest/user_guide/plugin_development/\u003e`_.\n\nContribution to Errbot itself\n-----------------------------\n\nFeel free to fork and propose changes on `github \u003chttps://www.github.com/errbotio/errbot\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrbotio%2Ferrbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferrbotio%2Ferrbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrbotio%2Ferrbot/lists"}