{"id":13505459,"url":"https://github.com/pegvin/bread","last_synced_at":"2025-04-12T02:39:25.659Z","repository":{"id":47025570,"uuid":"469382504","full_name":"pegvin/bread","owner":"pegvin","description":":bread: Install, update and remove AppImage from your CLI.","archived":false,"fork":false,"pushed_at":"2024-04-05T16:40:10.000Z","size":203,"stargazers_count":35,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-12T02:39:15.980Z","etag":null,"topics":["appimage","go","golang","linux","package-manager"],"latest_commit_sha":null,"homepage":"https://pegvin.github.io/bread","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pegvin.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":"2022-03-13T13:39:38.000Z","updated_at":"2024-10-06T20:04:53.000Z","dependencies_parsed_at":"2024-06-19T11:14:21.116Z","dependency_job_id":"48ce629b-78a8-4ccc-a859-ffac1e8f240d","html_url":"https://github.com/pegvin/bread","commit_stats":{"total_commits":213,"total_committers":2,"mean_commits":106.5,"dds":0.009389671361502372,"last_synced_commit":"7740933b3e23c26499dcf9711656913b0e25245b"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pegvin%2Fbread","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pegvin%2Fbread/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pegvin%2Fbread/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pegvin%2Fbread/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pegvin","download_url":"https://codeload.github.com/pegvin/bread/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248507306,"owners_count":21115573,"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":["appimage","go","golang","linux","package-manager"],"created_at":"2024-08-01T00:01:08.437Z","updated_at":"2025-04-12T02:39:25.637Z","avatar_url":"https://github.com/pegvin.png","language":"Go","funding_links":[],"categories":["AppImage consumption tools"],"sub_categories":["Package managers"],"readme":"\n# Bread ![:bread:](./.github/bread.svg)\n\nInstall, update, remove \u0026 run AppImage from GitHub using your CLI. (Fork of [AppImage ClI Tool](https://github.com/AppImageCrafters/appimage-cli-tool))\n\n## Features\n- Install from the GitHub Releases\n- Automatically Integrate App To Desktop When Installing/Updating\n- Run Applications From Remote Without Installing Them\n- Update with ease\n\n## Getting Started\n\n### Installation\n\n\u003cdetails\u003e\n  \u003csummary\u003eArch Linux \u0026 it's Derivatives\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eyou can use this step if your distribution does provide \u003ccode\u003elibappimage\u003c/code\u003e v1.0.0 or greater, which is the case on Arch Linux \u0026 it's Derivatives, kaOS, KDE Neon, Parabola Linux\u003c/p\u003e\n  \u003cp\u003einstall \u003ccode\u003elibappimage\u003c/code\u003e dependency\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003epacman -S libappimage\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003ethen install bread\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003esudo curl -L https://github.com/pegvin/bread/releases/download/v0.7.2/bread-0.7.2-x86_64 -o /usr/local/bin/bread \u0026\u0026 sudo chmod +x /usr/local/bin/bread\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eDebian \u0026 it's Derivatives\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eyou can use this step if your distribution doesn't provide \u003ccode\u003elibappimage\u003c/code\u003e v1.0.0 or greater, which is the case on Debian \u0026 it's derivatives\u003c/p\u003e\n  \u003cp\u003eget the appimage containing \u003ccode\u003elibappimage\u003c/code\u003e v1.0.3\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003esudo curl -L https://github.com/pegvin/bread/releases/download/v0.7.2/bread-0.7.2-x86_64.AppImage -o /usr/local/bin/bread \u0026\u0026 sudo chmod +x /usr/local/bin/bread\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n***Any version of libappimage will work with bread but it is recommended to use v1.0.0 or greater, You can also Refer to this [list](https://repology.org/project/libappimage/versions) to check what version of libappimage your Distribution provides.***\n\n---\n\n## Removal\n\nJust Remove the binary\n```bash\nsudo rm -v /usr/local/bin/bread\n```\n\n**NOTE** this won't delete the app you've installed.\n\n---\n\n## Usage\n\n\u003cdetails\u003e\n  \u003csummary\u003eNOTE\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eOften there are many times when the GitHub user and repo both are same, for example \u003ca href=\"https://github.com/LibreSprite/LibreSprite\" target=\"_blank\"\u003elibresprite\u003c/a\u003e, so in this case you can just specify single name like this \u003ccode\u003ebread install libresprite\u003c/code\u003e, this works with all the commands\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eInstall a application\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eTo install an Application from GitHub you can use the install command where user is the github repo owner and repo is the repository name\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread install user/repo\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003eTo install an application from a different Tag name you can specify the tag name too\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread install user/repo tagname\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eRun a application from remote\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eIf you want to run a application from remote without installing it you can use the run command\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread run user/repo\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003eYou can pass CLI arguments to the application too like this\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread run user/repo -- --arg1 --arg2\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003eYou can clear the download cache using clean command \u003ccode\u003ebread clean\u003c/code\u003e, Since all the applications you run from remote are cached so that it isn't downloaded everytime\u003c/p\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eRemove a application\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eyou can remove a installed application using the remove command\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread remove user/repo\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eUpdate a applicationn\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eYou can update a application using the update command\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread update user/repo\u003c/code\u003e\u003c/pre\u003e\n\n  \u003cp\u003eif you just want to check if update is available you can use the \u003ccode\u003e--check\u003c/code\u003e flag\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread update user/repo --check\u003c/code\u003e\u003c/pre\u003e\n\n  \u003cp\u003eif you want to update all the applications you can use the \u003ccode\u003e--all\u003c/code\u003e flag\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread update --all\u003c/code\u003e\u003c/pre\u003e\n\n  \u003cp\u003ethe \u003ccode\u003e--check\u003c/code\u003e \u0026 \u003ccode\u003e--all\u003c/code\u003e flag can be used together\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread update --all --check\u003c/code\u003e\u003c/pre\u003e\n\n  \u003cp\u003ethe \u003ccode\u003e-n\u003c/code\u003e or \u003ccode\u003e--no-pre-release\u003c/code\u003e flag can be used to disable updates for pre-releases.\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread update --no-pre-release\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eSearch for an application\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eYou can search for a application from the \u003ca href=\"https://appimage.github.io\"\u003eAppImage\u003c/a\u003e API\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread search \"Your search text\"\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eList all the installed application\u003c/summary\u003e\n  \u003cbr\u003e\n  \u003cp\u003eYou can list all the installed applications using list command\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread list\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003eIf you also want to see the SHA1 Hashes of the applications listed, you can pass the \u003ccode\u003e-s\u003c/code\u003e or \u003ccode\u003e--show-sha1\u003c/code\u003e flag\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread list --show-sha1\u003c/code\u003e\u003c/pre\u003e\n  \u003cp\u003eIf you want to see the GitHub release tag name \u003ccode\u003e-t\u003c/code\u003e or \u003ccode\u003e--show-tag\u003c/code\u003e flag\u003c/p\u003e\n  \u003cpre\u003e\u003ccode\u003ebread list --show-tag\u003c/code\u003e\u003c/pre\u003e\n\u003c/details\u003e\n\n---\n\n### Bugs\n- Icons not showing in menus until there's a system reboot\n- Update Command Crashing\n\n### Limits\n- Bread uses GitHub API to get information about a repository and it's release, but without authentication GitHub API limits the request per hour.\n\n---\n\n## Tested On:\n- Ubuntu 20.04 - by me\n- Debian 11 - by me\n- Manjaro Linux - by me\n- Arch Linux - by [my brother](https://github.com/idno34)\n\n---\n\n## File/Folder Layout\nBread installs all the applications inside the `Applications` directory in your Linux Home Directory `~`, inside this directory there can be also a directory named `run-cache` which contains all the appimages you've run from the remote via the `bread run` command.\n\nIn the `Applications` there is also a file named `.registry.json` which contains information related to the installed applications!\nIn the `Applications` directory there is also a file named `.AppImageFeed.json` which is AppImage Catalog From [AppImage API](https://appimage.github.io/feed.json)\n\n---\n## Related:\n- [Zap - :zap: Delightful AppImage package manager ](https://github.com/srevinsaju/zap)\n- [A AppImage Manager Written in Shell](https://github.com/ivan-hc/AM-Application-Manager)\n- [The Original Tool Which Bread is Based On](https://github.com/AppImageCrafters/appimage-cli-tool)\n\n---\n\n## Building From Source\n\nMake Sure You Have Go version 1.18.x \u0026 [AppImage Builder](https://appimage-builder.readthedocs.io/en/latest/) Installed.\n\nGet The Repository Via Git:\n\n```bash\ngit clone https://github.com/pegvin/bread\n```\n\nGo Inside The Source Code Directory \u0026 Get All The Dependencies:\n\n```bash\ncd bread\ngo mod tidy\n```\n\nMake The Build Script Executable And Run It\n\n```bash\nchmod +x ./make\n./make --prod\n```\n\nAnd To Build The AppImage Run\n\n```bash\n./make appimage\n```\n\n---\n## Build Script\nThe `make` bash script can build your go code, make appimage out of it, and clean the left over stuff including the genrated builds.\n\n#### Building in Development Mode\nThis will build the go code into a binary inside the `build` folder\n```\n./make\n```\n\n#### Building in Production Mode\nBuilding for production requires passing `--prod` flag which will enable some compiler options resulting in a small build size.\n```\n./make --prod\n```\n\n#### Building the AppImage\nBread requires libappimage0 for integrating your apps to desktop, which is done via libappimage, to make End user's life easier we package the libappimage with bread and that's why we build the binaries into AppImages so that user doesn't need to install anything.\n\nTo make a appimage out the pre built binaries\n```\n./make appimage\n```\n\n#### Get Dependency\nTo install the dependencies require to build go binary\n```\n./make get-deps\n```\n\n---\n\n## Todo\n- [ ] Switch To Some Other Language Since Go Module System is Shit\n- [ ] Improve UI\n- [x] Make AppImages Runnable From Remote Without Installing (Done in v0.3.6)\n- [x] Work On Reducing Binary Sizes (Reduced From 11.1MB to 3.1MB)\n- [ ] Add 32 Bit Builds (Currently not possible since [DL](https://github.com/rainycape/dl) dependency is not available for 32 bit machines)\n- [ ] Add Auto Updater Which Can Update The Bread Itself\n- [x] Add `--version` To Get The Version (Done in v0.2.2)\n- [x] Mirrors:\n  - :heavy_multiplication_x: I Would Like To Introduce Concept Of Mirror Lists Which Contain The List Of AppImages With The Download URL, tho currently i am not working on it but in future i might.\n  - [x] I am dropping this idea, tho i've added a search command which can search for appimages from a central server API\n\n---\n\n# Thanks\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpegvin%2Fbread","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpegvin%2Fbread","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpegvin%2Fbread/lists"}