{"id":18616589,"url":"https://github.com/neo-oli/contact","last_synced_at":"2025-04-11T01:32:00.315Z","repository":{"id":82158840,"uuid":"93654213","full_name":"Neo-Oli/contact","owner":"Neo-Oli","description":"This is a command line application for contact management with pipes in mind using a file based storage.","archived":false,"fork":false,"pushed_at":"2024-07-12T09:30:21.000Z","size":41,"stargazers_count":34,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-07-12T10:58:12.759Z","etag":null,"topics":["contacts","pipe","shell","termux"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/Neo-Oli.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-06-07T16:03:26.000Z","updated_at":"2024-07-12T09:30:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"28b4d467-499f-4a6a-98bf-95ca09d9f40c","html_url":"https://github.com/Neo-Oli/contact","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Oli%2Fcontact","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Oli%2Fcontact/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Oli%2Fcontact/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Neo-Oli%2Fcontact/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Neo-Oli","download_url":"https://codeload.github.com/Neo-Oli/contact/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223454137,"owners_count":17147795,"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":["contacts","pipe","shell","termux"],"created_at":"2024-11-07T03:37:17.249Z","updated_at":"2024-11-07T03:37:17.919Z","avatar_url":"https://github.com/Neo-Oli.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Contact\n\nThis is a command line application for contact management with pipes in mind. It lets you choose a contact with FZF\n\n```\nSyntax:\n    contact [COMMAND] [NAME] [PROPERTY]\n    Commands:\n    add: Add new contact\n    edit: Edit existing contact\n    delete: Delete contact\n    get: Get property of contact (default)\n    git: Interact with the git repositry directly\n        Example: `contact git status`\n        To enable the git repository features of contact you need to run:\n            `contact git init`\n        If you already have contacts you need to manually commit them:\n            `contact git add --all;contact git commit -m \"Commit all existing contacts\"`\n    help: Show this message\n    mutt-aliases: Export as mutt aliases.\n    rename-all: Rename all files to the correct name\n```\n\n## Database\n\nEach contact is saved into a separate file in `~/.contacts`. You can save as many properties as you want. The only one that is required is `name`.\n\n### Example\n\n```\nname=Max Muster\nemail=max@mail.tld\nmobile=0000000000\nphone=0000000000\naddress=Beispielweg 12\ncity=Atlantis\nzip=9990\n```\n\n## Examples\n\n```\ncontact get #this let's you choose a name and then the propery\n\ncontact get \"Max Muster\" \"email\" #get's you just the email address\n\ncontact add \"Add a new contact. Opens an empty file with $EDITOR\n\ncontact mutt-aliases \u003e ~/.mutt/aliases #export your contacts to the mutt alias file\n\n# Usage in Pipes\n\nmutt $(contact) #choose your email address\n\nmutt $(contact \"Max Muster\" \"email\") #send email to Max Muster\n\ntermux-telephony-call $(contact) #call someone in you address book\n\ntermux-telephony-call $(contact \"Max Muster\" \"mobile\") #call Max Muster\n```\n\n## Installation\n\n### Requirements\n\nYou need to install [fzf](https://github.com/junegunn/fzf) and git (for git integration)\n\n### Installation\nCopy the file `contact` to any directory in you `$PATH`. Make sure it's executable.\n```\ncp contact /bin/\nchmod +x /bin/contact\n```\n\n### Enable git integration\nTo enable git integration go to the `~/.contacts` folder (create it if you've never run any `contact` command before and run `git init` all changes made with `contact` should now get added and commited automatically. If you have preexisting contacts you need to manually add them all to git and commit them. \n\n```\ngit add *\ngit commit -m \"Initial commit\"\n```\n\n### Environment variables\n\nCertain advanced features can be set via environment variables:\n\n- `CONTACT_SHORT_ALIASES=true` will cause mutt-aliases to just include the email and not the name\n\n### Installation in Termux\n\nContact developed on Termux with Termux in mind, but running it on termux requires an additional step.\n\n```\npkg install git fzf\ncp contact $PREFIX/bin/ #or another directory in your $PATH\nchmod +x $PREFIX/bin/contact\ntermux-fix-shebang $PREFIX/bin/contact\n```\n\n## Getting started\n\nTo create your first contact run `contact add`. This will open `$EDITOR` or `vi`. You can now add contact information. See the \"Example\" section for the syntax. `name` is required (as it gets used in the filename).\n\n## Migrate from abook\n\n```\nmkdir -p ~/.contacts\ncd ~/.contacts\nawk '{print $0 \"[\"\u003e \"file\" NR}' RS='['  ../.abook/addressbook\nsed 's/\\[//g' -i *\nsed 's/^.*\\]$//g' -i *\nrm file1 file2 #remove blank files\ncontact rename-all\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo-oli%2Fcontact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneo-oli%2Fcontact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneo-oli%2Fcontact/lists"}