{"id":19099787,"url":"https://github.com/bryanoliveira/habla","last_synced_at":"2025-10-23T21:02:39.857Z","repository":{"id":170788791,"uuid":"647023058","full_name":"bryanoliveira/habla","owner":"bryanoliveira","description":"A coding assistant for entire codebases.","archived":false,"fork":false,"pushed_at":"2023-12-13T11:35:40.000Z","size":34,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-19T05:15:43.595Z","etag":null,"topics":["anthropic","anthropic-claude","assistant","chatbot","claude-api","gpt-35-turbo","gpt-4","openai","openai-api","openai-chatgpt","python","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bryanoliveira.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-05-29T22:30:55.000Z","updated_at":"2024-12-07T21:06:36.000Z","dependencies_parsed_at":"2023-12-13T12:45:29.865Z","dependency_job_id":"a01ef160-f1e1-4e0b-89c3-9a14202e8e08","html_url":"https://github.com/bryanoliveira/habla","commit_stats":null,"previous_names":["bryanoliveira/habla"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanoliveira%2Fhabla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanoliveira%2Fhabla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanoliveira%2Fhabla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanoliveira%2Fhabla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bryanoliveira","download_url":"https://codeload.github.com/bryanoliveira/habla/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251740003,"owners_count":21635958,"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":["anthropic","anthropic-claude","assistant","chatbot","claude-api","gpt-35-turbo","gpt-4","openai","openai-api","openai-chatgpt","python","python3"],"created_at":"2024-11-09T03:52:17.277Z","updated_at":"2025-10-23T21:02:39.772Z","avatar_url":"https://github.com/bryanoliveira.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cpre align=\"center\"\u003e\n    ___       ___       ___       ___       ___   \n   /\\__\\     /\\  \\     /\\  \\     /\\__\\     /\\  \\  \n  /:/__/_   /::\\  \\   /::\\  \\   /:/  /    /::\\  \\ \n /::\\/\\__\\ /::\\:\\__\\ /::\\:\\__\\ /:/__/    /::\\:\\__\\\n \\/\\::/  / \\/\\::/  / \\:\\::/  / \\:\\  \\    \\/\\::/  /\n   /:/  /    /:/  /   \\::/  /   \\:\\__\\     /:/  / \n   \\/__/     \\/__/     \\/__/     \\/__/     \\/__/  \n\u003c/pre\u003e\n\nHabla is an assistant that helps you with your software development projects. It scans your codebase and uses AI to answer questions and fulfill requests about it.\n\n## Features\n\nHabla is great for:\n\n- Rapidly understanding how code written by third parties works\n- Extending your code considering existing functions and style\n- Identifying bugs in integrations and interactions between modules\n\nHowever, Habla has some limitations:\n\n- It may not work well with very large projects due to its context size limitations imposed by the underlying AI models.\n- It may not have knowledge of the latest libraries or packages, as its knowledge has a time cutoff.\n\n## Usage\n\nTo use Habla, follow the instructions below:\n\n### Installation\n\nInstall Habla with pip:\n\n```shell\npip install git+https://github.com/bryanoliveira/habla --upgrade\n```\n\n### API Keys\n\nSet up your favorite model's keys. You have two options:\n\n- Anthropic API key:\n\n```shell\nexport ANTHROPIC_API_KEY=\"\u003cYOUR API KEY\u003e\"\n```\n\n- OpenAI API keys:\n\n```shell\nexport OPENAI_API_KEY=\"\u003cYOUR API KEY\u003e\"\nexport OPENAI_ORG_ID=\"\u003cYOUR ORGANIZATION ID\u003e\"\n```\n\n### Running Habla\n\nRun Habla from any software development project by executing the following command in your terminal:\n\n```shell\nhabla\n```\n\nHabla will scan your current directory for relevant .py, .js, and other text files and use that context to understand your project.\n\n### Making Requests\n\nOnce Habla is running, you can type in requests and it will process them using Anthropic's or OpenAI's API to generate a relevant response based on the context and request.\n\nFor example, you can ask:\n\n\u003e Explain the utils.py module\n\nHabla will provide an explanation of the specified module:\n\n\u003cblockquote\u003e\nThis module contains some utility functions:\n\n- typewrite() - Prints a text string character by character with a time delay between each character. This gives a 'typewriter' effect.\n- print_divider() - Prints a header text with a divider line under it. The divider line is made of the divider_char repeated to fill the terminal width.  \n\nSome notes:\n\n- It uses the colorama module to print colored text.  \n- It uses time.sleep() to create the delay in typewrite().  \n- It uses os.get_terminal_size() to get the terminal width and print a divider line that fits the terminal.\n\u003c/blockquote\u003e\n\n## CLI Arguments\n\n| Option                                             | Description                                                                                                             |\n| -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| -h, --help                                         | Show the help message and exit.                                                                                         |\n| -p PATH, --path PATH                               | Path to the repository or file (optional, defaults to the current directory).                                           |\n| -d MAX_DEPTH, --max-depth MAX_DEPTH                | Maximum depth to scan (optional, defaults to `10`).                                                                     |\n| --stream                                           | Stream the assistant response. Disables Markdown rendering.                                                             |\n| -t MAX_TOKENS, --max-tokens MAX_TOKENS             | Maximum tokens on the assistant's response (optional, defaults to `2048`).                                              |\n| -v {anthropic,openai}, --vendor {anthropic,openai} | The model vendor to use (Anthropic or OpenAI) (optional, defaults to `anthropic`).                                      |\n| -m MODEL, --model MODEL                            | The model to use (optional, defaults to `claude-instant-v1-100k`).                                                      |\n| --system-message SYSTEM_MESSAGE                    | The system message to start the conversation (optional, defaults to `habla.chat.DEFAULT_SYSTEM_CLAUDE`).                |\n| --use-anthropic                                    | Use Anthropic models. Sets `vendor` to `anthropic` and uses the default `system_message` for Claude.                    |\n| --use-openai                                       | Use OpenAI models. Sets `vendor` to `openai`, `model` to `gpt-3.5-turbo` and uses the default `system_message` for GPT. |\n\n## Requirements\n\n- Python 3.8+\n- An API key from [Anthropic](https://console.anthropic.com) or [OpenAI](https://platform.openai.com) to access their AI models.\n- Python libraries installable with `pip install -r requirements.txt`\n\n---\n\nThis README was (mostly) generated using `habla` itself!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanoliveira%2Fhabla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryanoliveira%2Fhabla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanoliveira%2Fhabla/lists"}