{"id":13910404,"url":"https://github.com/mirchaemanuel/a80-cli","last_synced_at":"2026-03-17T17:33:11.176Z","repository":{"id":65297418,"uuid":"588966868","full_name":"mirchaemanuel/a80-cli","owner":"mirchaemanuel","description":"A80 command line tools - OpenAI API and other tools","archived":false,"fork":false,"pushed_at":"2024-11-17T11:22:42.000Z","size":20005,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-23T13:11:15.521Z","etag":null,"topics":["ai","cli-app","image-processing","open-ai","openai-api","openai-images","php","tools","utilities"],"latest_commit_sha":null,"homepage":"https://a80.it/cli","language":"PHP","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/mirchaemanuel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-01-14T16:26:38.000Z","updated_at":"2025-02-09T13:33:05.000Z","dependencies_parsed_at":"2024-06-16T15:20:44.653Z","dependency_job_id":"fd45aaf6-3be2-4546-bf0f-bf6feefbae60","html_url":"https://github.com/mirchaemanuel/a80-cli","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirchaemanuel%2Fa80-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirchaemanuel%2Fa80-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirchaemanuel%2Fa80-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirchaemanuel%2Fa80-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirchaemanuel","download_url":"https://codeload.github.com/mirchaemanuel/a80-cli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247851850,"owners_count":21006831,"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":["ai","cli-app","image-processing","open-ai","openai-api","openai-images","php","tools","utilities"],"created_at":"2024-08-07T00:01:20.975Z","updated_at":"2026-03-17T17:33:06.124Z","avatar_url":"https://github.com/mirchaemanuel.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"![A80-cli GitHub Logo](https://user-images.githubusercontent.com/1971953/222934954-e0891cca-79ac-4b02-a330-0e5009968c9f.png)\n\n# A80-cli\n\nA80-cli is a simple PHP CLI app in which I will collect the tools that I commonly use for my work and that I currently\nhave in some private repositories or in personal workspace.\n\nI'm going to collect (and convert) all my tools in this small application written\n\nwith [Laravel Zero](https://github.com/laravel-zero/laravel-zero).\n\nIt is currently in the preliminary stage.\n\nIn addition to the usual tools, I will add new ones to interact with **OpenAI** and more.\n\n## Work progress\n\nIn this phase I am preparing the project in Laravel-Zero to accommodate the various tools.\n\nI had the opportunity to experiment with different aspects of this fantastic project by Nuno Maduro and I find it\nfantastic and fit for purpose.\n\n## Coming soon\n\n- scripts/tools that I currently use to manipulate and collect my photos\n- report generators\n- web tools\n    - crawler and scraper\n    - sitemap generator\n- ...\n\n## OpenAI\n\nCurrently there is some command to interact with OpenAI\n\n- ai:query =\u003e allow the user to ask question to OpenAI\n- ai:title-abstract =\u003e generate a SEO title and an abstract from a text file (plain text only)\n- ai:image =\u003e generate an image from a prompt with the help of OpenAI\n- ai:audio-to-text =\u003e transcribe an audio/video file to text in many languages with the help of OpenAI\n\n```\n./a80 ai:query --help\n\nDescription:\n  place a question to OpenAI (using da-vinci)\n\nUsage:\n  ai:query [options] [--] [\u003cquestion\u003e]\n\nArguments:\n  question                       question to ask\n\nOptions:\n  -m, --max-tokens[=MAX-TOKENS]  [1-4000] default is 2000\n  \n./a80 ai:title-abstract --help                                                                             ─╯\nDescription:\n  Generate a title and description from a text file\n\nUsage:\n  ai:title-abstract [options] [--] \u003cfilename\u003e\n\nArguments:\n  filename                       file to read\n\nOptions:\n  -m, --max-tokens[=MAX-TOKENS]  [1-4000] default is 2000\n      --model[=MODEL]            [davinci, ada, babbage, curie, content-filter-alpha-c4] default is davinci\n\n```\n\n## Requirements\n\n- PHP 8.1+\n- Imagick or GD extension for image processing\n- SQLite extension for database\n- Yaml parser (suggested)\n\n### Check requirements\n\nYou can execute a command to check requirement:\n\n```\n./a80 check\n\nChecking system preconditions and requirements...\n - creating app settings path: /home/user/.a80_cli/: ✔\n - .env file: ✔\n - yaml extension: ✔\n - imagick extension: ✔\n - GD extension: ✔\n - sqlite extension: ✔\n```\n\n### If you don't meet the requirements\n\nIf your development environment doesn't meet the requirements, you can use my Docker-based environment:\n\nhttps://github.com/mirchaemanuel/ryuudev\n\nContains everything needed to develop and run `a80-cli`.\n\n## Usage\n\n### Installing composer dependencies\n\n```\ncomposer install\n```\n\nor\n\n```\ndocker run --rm --interactive --tty --volume $PWD:/app composer install --ignore-platform-reqs\n```\n\n### Build\n\nYou can build the application\n\n```\nphp a80 app:build\n```\n\nIt will create a phar executable archive in `/builds`\n\n# Release History\n\n\u003ctable\u003e\n    \u003cthead\u003e\n    \u003ctr\u003e\n        \u003cth\u003eRelease\u003c/th\u003e\n        \u003cth\u003eDate\u003c/th\u003e\n        \u003cth\u003eNotes\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1\u003c/td\u003e\n        \u003ctd\u003e2023-01-14\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003eInitial release\u003c/li\u003e\n                \u003cli\u003eOpenAI client library\u003c/li\u003e\n                \u003cli\u003eai:query\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.3\u003c/td\u003e\n        \u003ctd\u003e2023-01-14\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003etools:image:thumb\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.4\u003c/td\u003e\n        \u003ctd\u003e2023-01-14\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003etools:image:list\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.5\u003c/td\u003e\n        \u003ctd\u003e2023-01-14\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003etools:image:list improved with thumbnail generation and report\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.6\u003c/td\u003e\n        \u003ctd\u003e2023-01-15\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003eOpenAIService\u003c/li\u003e\n                \u003cli\u003eai:title:abstract generate title and abstract of text file\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.7\u003c/td\u003e\n        \u003ctd\u003e2023-01-20\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003eadded VERSION.yml\u003c/li\u003e\n                \u003cli\u003eintroduced Storage disk \u0026#039;app\u0026#039; for local storage of preferences, data and cache\u003c/li\u003e\n                \u003cli\u003eadded two new commands: check and env:create\u003c/li\u003e\n                \u003cli\u003eadded database support for local storage\u003c/li\u003e\n                \u003cli\u003ecreated settings table\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.8\u003c/td\u003e\n        \u003ctd\u003e2023-01-23\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003eadded ServiceProvider: AIServiceProvider and ImageServiceProvider\u003c/li\u003e\n                \u003cli\u003eadded GD failover for image processing when Imagick is not available\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.1.9\u003c/td\u003e\n        \u003ctd\u003e2023-02-07\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003efixed ImageUtils reference error\u003c/li\u003e\n                \u003cli\u003eadded some useful warning to tools:image:list command\u003c/li\u003e\n                \u003cli\u003econverted VERSION.yml to JSON format for better compatibility\u003c/li\u003e\n                \u003cli\u003eadded new commands: tools:yaml2json and tools:json2yaml\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.2\u003c/td\u003e\n        \u003ctd\u003e2023-02-10\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n               \u003cli\u003eIntroduced `Intervention Image` library for image processing\u003c/li\u003e\n               \u003cli\u003eRefactoring ImageService\u003c/li\u003e\n               \u003cli\u003eAdded new command: tools:image:exif to read EXIF data from image file\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.3\u003c/td\u003e\n        \u003ctd\u003e2023-03-04\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n               \u003cli\u003eAdded new command: `ai:image` to generate image file from prompt with OpenAI\u003c/li\u003e\n               \u003cli\u003eAdded new command: `ai:audio-to-text` to generate text from audio file with OpenAI\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e0.3.1\u003c/td\u003e\n        \u003ctd\u003e2023-03-05\u003c/td\u003e\n        \u003ctd\u003e\n            \u003cul\u003e\n                \u003cli\u003e[bug] image exif - Resolve issue with reading EXIF metadata from some images\u003c/li\u003e\n                \u003cli\u003e[bug] ai audio2text: resolve audio file access from inside the phar\u003c/li\u003e\n                \u003cli\u003erenamed `audio-to-text` to `audio2text`\u003c/li\u003e\n            \u003c/ul\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirchaemanuel%2Fa80-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirchaemanuel%2Fa80-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirchaemanuel%2Fa80-cli/lists"}