{"id":15406804,"url":"https://github.com/dannyben/alf","last_synced_at":"2025-04-06T09:11:18.053Z","repository":{"id":24554155,"uuid":"101905520","full_name":"DannyBen/alf","owner":"DannyBen","description":"Bash Alias Generator and Manager","archived":false,"fork":false,"pushed_at":"2024-12-20T09:09:40.000Z","size":984,"stargazers_count":107,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T08:11:56.927Z","etag":null,"topics":["alias-generator","aliases","bash","shortcuts"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/DannyBen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2017-08-30T16:41:47.000Z","updated_at":"2025-02-23T23:31:16.000Z","dependencies_parsed_at":"2024-01-13T19:42:41.900Z","dependency_job_id":"1863a1b1-649f-4109-8a0f-87e6244b45b6","html_url":"https://github.com/DannyBen/alf","commit_stats":{"total_commits":228,"total_committers":3,"mean_commits":76.0,"dds":0.25,"last_synced_commit":"22dac79d658294c43806e135c262d4e468d6d42e"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Falf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Falf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Falf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DannyBen%2Falf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DannyBen","download_url":"https://codeload.github.com/DannyBen/alf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247457803,"owners_count":20941906,"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":["alias-generator","aliases","bash","shortcuts"],"created_at":"2024-10-01T16:25:27.583Z","updated_at":"2025-04-06T09:11:18.028Z","avatar_url":"https://github.com/DannyBen.png","language":"Shell","readme":"\u003cdiv align='center'\u003e\n\u003cimg src='alf-logo.svg' width=300\u003e\n\n# Alf - Your Little Bash Alias Friend\n\n![Version](https://img.shields.io/badge/version-0.6.1-blue.svg)\n[![Build Status](https://github.com/DannyBen/alf/workflows/Test/badge.svg)](https://github.com/DannyBen/alf/actions?query=workflow%3ATest)\n\n\u003c/div\u003e\n\n---\n\nAlf enhances your bash alias management. It was developed using the\n[Bashly Command Line Framework][bashly].\n\n\n## Features\n\n- Create aliases by using a config file.\n- Create aliases for sub-commands (for example, `g s` for `git status`).\n- Synchronize your aliases across hosts or users by uploading your \n  config file to GitHub.\n- Does not alter anything in your system except for creating the\n  `~/.bash_aliases` file, which is normally already sourced by your login\n  process.\n- Works with bash and zsh.\n\n\n## Demo\n\n![Demo](/demo/cast.gif)\n\n\n## Installation\n\nInstall the `alf` executable script:\n\n```bash\n$ curl -Ls get.dannyb.co/alf/setup | bash\n```\n\nIf you prefer to install manually, simply download the [alf](/alf) file,\nplace it somewhere in your path, and make it executable.\n\nNote that alf requires bash 4.0 or higher (`brew install bash` for mac users).\n\n\n## Using with GitHub-hosted configuration (recommended)\n\nThe easiest way to use alf is to create a repository on github, call it \n`alf-conf`, and put an `alf.conf` file in it.\n\n### 1. Create your own `alf-conf` repository  \n\n- See the [alf.conf](alf.conf) file as a starting point, or\n- [Generate a template][template] from my [alf-conf][conf]\n\n### 2. Connect alf to your repository\n\n```shell\n$ alf connect \u003cyour github user\u003e\n```\n\n### 3. Save and source your aliases\n\n```shell\n$ alf save\n$ source ~/.bash_aliases  # this normally already exists in your ~/.bashrc\n```\n\n\n## Using without GitHub\n\nIf you want to try alf before creating your github repo, use this method to\ncreate your `bash_aliases` file from a local configuration file.\n\n### 1. Create your `alf.conf` file\n\nSee the sample [alf.conf](alf.conf) file as a starting point.\n\n### 2. Save and source your aliases\n\n```bash\n$ alf save\n$ source ~/.bash_aliases\n```\n\n## Additional usage patterns\n\n```\n$ alf --help\n\nalf - Your Little Bash Alias Friend\n\nUsage:\n  alf [command]\n  alf [command] --help | -h\n  alf --version | -v\n\nCommands:\n  connect    Connect to a remote git repository\n  download   Perform git pull on the connected repo\n  upload     Perform git commit and push on the connected repo\n  generate   Generate aliases to stdout\n  save       Generate aliases to ~/.bash_aliases\n  edit       Open your alf.conf for editing\n  which      Show the alias command\n  upgrade    Upgrade alf to the latest version\n  info       Show all alf related system facts\n\nOptions:\n  --help, -h\n    Show this help\n\n  --version, -v\n    Show version number\n\nEnvironment Variables:\n  ALF_RC_FILE\n    Path to alfrc file\n    This file holds the path to the alf-conf repository\n    Default: ~/.alfrc\n```\n\n## File format reference (`alf.conf`)\n\n- [Sample, documented `alf.conf` file](alf.conf)\n- [`alf.conf(5)` man page](doc/alf.conf.md)\n\n\n## Uninstalling\n\nTo uninstall alf:\n\n```shell\n# Run the uninstall script \n$ curl -Ls get.dannyb.co/alf/uninstall | bash\n\n# Optionally, remove .alfrc (exists only if you have performed `alf connect`)\n$ rm -f ~/.alfrc\n\n# Optionally, remove .bash_aliases (exists only if you have performed `alf save`)\n$ rm -f ~/.bash_aliases\n```\n\n\n## Compatibility\n\nAlf was tested on **bash** and **zsh** (and might work with other shells).\n\nIn all cases, bash version 4.0 or higher must be installed, since alf uses\nassociative arrays which are not available in older versions.\n\nIf your shell does not automatically source `~/.bash_aliases` on startup, you\nshould add this line to your startup script:\n\n```shell\nsource ~/.bash_aliases\n```\n\n### ZSH Users\n\nOh-My-Zsh users may skip this step.\n\nIf you would like to have autocompletion for alf's sub-aliases and you are using\nzsh, you should enable completion by adding this to your `~/.zshrc` (if is it not\nalready there) before sourcing `.bash_aliases`:\n\n```bash\n# Load completion functions\nautoload -Uz +X compinit \u0026\u0026 compinit\nautoload -Uz +X bashcompinit \u0026\u0026 bashcompinit\n```\n\n\n## Related Projects\n\nFor a similar project, but for command shortcuts on a per-directory basis, \nsee [opcode][opcode].\n\n\n## Contributing / Support\n\nIf you experience any issue, have a question or a suggestion, or if you wish\nto contribute, feel free to [open an issue][issues].\n\n---\n\n[issues]: https://github.com/DannyBen/alf/issues\n[conf]: https://github.com/DannyBen/alf-conf\n[template]: https://github.com/DannyBen/alf-conf/generate\n[opcode]: https://github.com/DannyBen/opcode\n[bashly]: https://bashly.dannyb.co\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannyben%2Falf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdannyben%2Falf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdannyben%2Falf/lists"}