{"id":15046347,"url":"https://github.com/kogno/kogno","last_synced_at":"2025-08-23T05:10:55.668Z","repository":{"id":44989929,"uuid":"505491044","full_name":"kogno/kogno","owner":"kogno","description":"Kogno is an open source framework running on the Ruby programming language for developing chatbots.","archived":false,"fork":false,"pushed_at":"2022-08-02T22:07:40.000Z","size":4162,"stargazers_count":71,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-28T00:50:31.529Z","etag":null,"topics":["chatbot","chatbot-framework","chatbots","conversational-ai","conversational-bots","framework","messenger-bot","messenger-platform","ruby","ruby-gem","telegram-bot","whatsapp-bot"],"latest_commit_sha":null,"homepage":"https://kogno.io","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kogno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-20T15:11:11.000Z","updated_at":"2025-01-22T16:03:58.000Z","dependencies_parsed_at":"2022-08-12T11:40:37.542Z","dependency_job_id":null,"html_url":"https://github.com/kogno/kogno","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kogno/kogno","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kogno%2Fkogno","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kogno%2Fkogno/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kogno%2Fkogno/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kogno%2Fkogno/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kogno","download_url":"https://codeload.github.com/kogno/kogno/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kogno%2Fkogno/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745491,"owners_count":24813503,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["chatbot","chatbot-framework","chatbots","conversational-ai","conversational-bots","framework","messenger-bot","messenger-platform","ruby","ruby-gem","telegram-bot","whatsapp-bot"],"created_at":"2024-09-24T20:53:00.742Z","updated_at":"2025-08-23T05:10:55.638Z","avatar_url":"https://github.com/kogno.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# Kogno\nKogno is an open source framework running on the Ruby programming language for developing conversational applications.\n\nIt is based on the [MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller) architecture and strongly inspired by Rails, so if you have ever worked on this framework, Kogno will be very familiar to you.\n\nThe following messaging platforms are currently supported: WhatsApp, Messenger and Telegram, maintaining a unified code in a single application for all of them.\n\n\u003e #### Full Documentation\n\u003e You can read the full documentation at https://docs.kogno.io or just continue here.\n\n\n\n## Getting Started\n\n#### 1. Install Kogno gem:\n\n    $ gem install kogno\n        \n#### 2. At the command prompt, create a new Kogno application:\n\n    $ kogno new my_chatbot\n        \n#### 3. Change directory to `my_chatbot` and install the dependencies:\n\u003e The MySQL development libraries must be previously installed before running the following command.   \n\n    $ bundle install\n        \n#### 4. Configure the database at `config/database.yml`:\n\n```ruby\nadapter: mysql2\npool: 5\nusername: your_user_name\npassword: your_password\nhost:  localhost\ndatabase: your_database_name\nencoding: utf8mb4\ncollation: utf8mb4_unicode_ci\n```\n\n#### 5. Create framework's tables in database:\n\n    $ kogno install\n        \n#### 6. Start your web server to receive incoming updates via an outgoing webhook from the messaging platforms:\n\n    $ kogno http start\n    \n\u003e ##### In order to receive webhooks you must configure the messaging platforms:\n\u003e - [Configure WhatsApp](https://docs.kogno.io/installation/whatsapp-configuration)\n\u003e - [Configure Telegram](https://docs.kogno.io/installation/telegram-configuration)\n\u003e - [Configure Messenger](https://docs.kogno.io/installation/messenger-configuration)\n\n## How an app written in Kogno looks like?\n\nThe code below represents a `Context` class, which is the equivalent of a `Controller` class in Ruby on Rails:\n\n```ruby\nclass MainContext \u003c Conversation\n\n  def blocks\n\n    intent \"greeting\" do\n    \n      @reply.text \"Hello!\"\n      @reply.button(\n        \"How can I help you today?\",\n        [\n          {\n            title: \"View Products\",\n            payload: \"featured_products\"\n          },\n          { \n            title: \"My Cart\",\n            payload: \"purchases/view_cart\"\n          }\n        ]\n      )\n      \n    end\n    \n    postback \"featured_products\" do\n    \n      @reply.text \"Alright.\"\n      @reply.template \"products/featured\", title: \"Here is a list of today's featured products.\"\n      \n    end\n    \n    keyword [\"stop\", \"quit\"] do\n    \n      @reply.text \"Alright\"\n      @reply.typing 2.seconds\n      @reply.text \"I'll stop writing you now..\"\n      \n    end\n    \n    everything_else do \n    \n      @reply.text \"Sorry, but I don't understand what you said.\"\n      \n    end\n\n  end\n\nend\n```\n\nIn the example above, `MainContext` has the ability to handle the following scenarios:\n\n- [`intent \"greeting\"`](https://docs.kogno.io/contexts/blocks/intent): A greeting message such as \"Hello\" or \"Hi\". Which was previously [created and trained on the NLP engine](https://docs.kogno.io/installation/nlp-configuration).\n- [`postback\"featured_products\"`](https://docs.kogno.io/contexts/blocks/postback):  Click event on the button \"View Products\" that have been sent as reply in the previous block intent \"greeting\".\n- [`keyword [\"stop\", \"quit\"]`](https://docs.kogno.io/contexts/blocks/keyword): Specifically two keywords \"stop\" or \"quit\".\n- [`everything_else`](https://docs.kogno.io/contexts/blocks/everything_else): Any message whose characteristics didn't match the execution criteria of the blocks listed above.\n\n\u003e\n\u003e To better understand how blocks work and to see the full list of them, check the following link https://docs.kogno.io/contexts/blocks.\n\u003e\n\n## Contribute\n\nYou can contribute a lot to this project by developing conversational applications with Kogno and in case you find a bug, [please report it](https://github.com/kogno/kogno/issues).\n\nAnd if you're as passionate about it as we are, come and code with us by fixing bugs, adding more integrations and creating more features.\n\n## License\n\nKogno is released under the [MIT License](https://opensource.org/licenses/MIT).\n\n\n\u003e\n\u003e ## Learn More\n\u003e Read the full the documentation at http://docs.kogno.io.\n\u003e\n\u003e Also you can download the source code of the [flight reservation demo app](https://github.com/kogno/travel_chatbot) written in Kogno.\n\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkogno%2Fkogno","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkogno%2Fkogno","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkogno%2Fkogno/lists"}