{"id":31912259,"url":"https://github.com/tsuyoshicho/vim-pass","last_synced_at":"2025-10-13T17:59:59.891Z","repository":{"id":34812008,"uuid":"173079186","full_name":"tsuyoshicho/vim-pass","owner":"tsuyoshicho","description":"Vim password-store API","archived":false,"fork":false,"pushed_at":"2025-09-13T03:06:08.000Z","size":413,"stargazers_count":4,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-13T04:17:37.609Z","etag":null,"topics":["2fa","ctrlp","gpg","otp","pass","password","vim","vim-clap"],"latest_commit_sha":null,"homepage":"https://tsuyoshicho.github.io/vim-pass/","language":"Vim Script","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/tsuyoshicho.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-02-28T09:11:05.000Z","updated_at":"2025-09-13T02:17:09.000Z","dependencies_parsed_at":"2023-01-15T09:19:00.421Z","dependency_job_id":"0d94a712-5233-4057-a1e0-016abbbafb76","html_url":"https://github.com/tsuyoshicho/vim-pass","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/tsuyoshicho/vim-pass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuyoshicho%2Fvim-pass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuyoshicho%2Fvim-pass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuyoshicho%2Fvim-pass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuyoshicho%2Fvim-pass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsuyoshicho","download_url":"https://codeload.github.com/tsuyoshicho/vim-pass/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsuyoshicho%2Fvim-pass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279016384,"owners_count":26085830,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["2fa","ctrlp","gpg","otp","pass","password","vim","vim-clap"],"created_at":"2025-10-13T17:59:51.742Z","updated_at":"2025-10-13T17:59:59.886Z","avatar_url":"https://github.com/tsuyoshicho.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vim-pass\n\n[![Powered by vital.vim](https://img.shields.io/badge/powered%20by-vital.vim-80273f.svg)](https://github.com/vim-jp/vital.vim) [![Powered by vital-codec](https://img.shields.io/badge/powerd%20by-vital--codec-80273f.svg)](https://github.com/tsuyoshicho/vital-codec)\n[![DeepWiki](https://img.shields.io/badge/DeepWiki-tsuyoshicho%2Fvim--pass-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAyCAYAAAAnWDnqAAAAAXNSR0IArs4c6QAAA05JREFUaEPtmUtyEzEQhtWTQyQLHNak2AB7ZnyXZMEjXMGeK/AIi+QuHrMnbChYY7MIh8g01fJoopFb0uhhEqqcbWTp06/uv1saEDv4O3n3dV60RfP947Mm9/SQc0ICFQgzfc4CYZoTPAswgSJCCUJUnAAoRHOAUOcATwbmVLWdGoH//PB8mnKqScAhsD0kYP3j/Yt5LPQe2KvcXmGvRHcDnpxfL2zOYJ1mFwrryWTz0advv1Ut4CJgf5uhDuDj5eUcAUoahrdY/56ebRWeraTjMt/00Sh3UDtjgHtQNHwcRGOC98BJEAEymycmYcWwOprTgcB6VZ5JK5TAJ+fXGLBm3FDAmn6oPPjR4rKCAoJCal2eAiQp2x0vxTPB3ALO2CRkwmDy5WohzBDwSEFKRwPbknEggCPB/imwrycgxX2NzoMCHhPkDwqYMr9tRcP5qNrMZHkVnOjRMWwLCcr8ohBVb1OMjxLwGCvjTikrsBOiA6fNyCrm8V1rP93iVPpwaE+gO0SsWmPiXB+jikdf6SizrT5qKasx5j8ABbHpFTx+vFXp9EnYQmLx02h1QTTrl6eDqxLnGjporxl3NL3agEvXdT0WmEost648sQOYAeJS9Q7bfUVoMGnjo4AZdUMQku50McDcMWcBPvr0SzbTAFDfvJqwLzgxwATnCgnp4wDl6Aa+Ax283gghmj+vj7feE2KBBRMW3FzOpLOADl0Isb5587h/U4gGvkt5v60Z1VLG8BhYjbzRwyQZemwAd6cCR5/XFWLYZRIMpX39AR0tjaGGiGzLVyhse5C9RKC6ai42ppWPKiBagOvaYk8lO7DajerabOZP46Lby5wKjw1HCRx7p9sVMOWGzb/vA1hwiWc6jm3MvQDTogQkiqIhJV0nBQBTU+3okKCFDy9WwferkHjtxib7t3xIUQtHxnIwtx4mpg26/HfwVNVDb4oI9RHmx5WGelRVlrtiw43zboCLaxv46AZeB3IlTkwouebTr1y2NjSpHz68WNFjHvupy3q8TFn3Hos2IAk4Ju5dCo8B3wP7VPr/FGaKiG+T+v+TQqIrOqMTL1VdWV1DdmcbO8KXBz6esmYWYKPwDL5b5FA1a0hwapHiom0r/cKaoqr+27/XcrS5UwSMbQAAAABJRU5ErkJggg==)](https://deepwiki.com/tsuyoshicho/vim-pass)\n\u003c!-- [![Powered by vital-Whisky](https://img.shields.io/badge/powered%20by-vital--Whisky-80273f.svg)](https://github.com/lambdalisue/vital-Whisky) --\u003e\n\u003c!-- DeepWiki badge generated by https://deepwiki.ryoppippi.com/ --\u003e\n\nVim password-store API.\nsee [Pass: The Standard Unix Password Manager](https://www.passwordstore.org/)\n\nCurrenlty *get* support. usable like `auth-source` at emacs.\n\n## Feature\n\n* \"Pass\" style data get / get_startup (and other variant) support.\n* [ctrlp.vim](https://github.com/ctrlpvim/ctrlp.vim) plugin : selection support.\n  * `\u003cC-x\u003e` : only copy to register\n  * `\u003cCR\u003e`  : put before cursor, 'P'\n  * `\u003cC-v\u003e` : put after  cursor, 'p'\n* [vim-clap](https://github.com/liuchengxu/vim-clap) plugin : selection support.\n  * only work put like 'gP'.\n* Limited support OTP(HOTP).\n\n## Require\n\n* gpg\n  * agent configuired as loopback enable\n* password-store like saved data\n* ctrlp.vim plugin\n  * if use selection feature.\n* vim-clap plugin\n  * if use selection feature.\n\n## Installation\n\n```vim\ndein#add('tsuyoshicho/vim-pass')\nif dein#tap('ctrlp') \u0026\u0026 dein#tap('vim-pass')\n  let g:ctrlp_extensions = get(g:, 'ctrlp_extensions', [])\n        \\ + ['pass']\nendif\n```\n\nor\n\n```toml\n[[plugins]]\nrepo = 'tsuyoshicho/vim-pass'\ndepends = ['ctrlp.vim','vim-clap']\nhook_add = '''\n  let g:ctrlp_extensions = get(g:, 'ctrlp_extensions', [])\n        \\ + ['pass']\n'''\n```\n\n## Usage\n\n```vim\n\" in vimrc\n\" configured at end of vim startup\ncall pass#get_startup('g:test_gh_token','Develop/Github')\ncall pass#get_startup('g:test_gh_username','Develop/Github','username')\n\nfunction! test() abort\n  let password = pass#get('Service/foobar')\n  \" ...\nendfunction\n```\n\n```toml\n# in plugin setting(dein's toml)\n[[plugins]]\nrepo = 'tsuyoshicho/vim-pass'\n\n[[plugins]] # https://pixe.la/\nrepo = 'mattn/vim-pixela'\ndepends = ['open-browser.vim','vim-pass']\nhook_add = '''\n  \" let g:pixela_username = 'user'\n  \" let g:pixela_token    = 'token'\n\n  call pass#get_startup('g:pixela_username','Develop/Pixela','username')\n  \" VimPixela work OK\n  call pass#get_startup('g:pixela_token','Develop/Pixela')\n  \" startup-time countup do not correct work.\n  \" It work or does not work depending on the processing order of events\n'''\n\n[[plugins]]\nrepo = 'tpope/vim-rhubarb'\ndepends = ['vim-fugitive','vim-pass']\n# on_if= 'executable(\"hub\")'\nhook_add = '''\n  call pass#get_startup('g:RHUBARB_TOKEN','Develop/Github')\n'''\n\n[[plugins]]\nrepo = 'kyoh86/vim-docbase'\ndepends = ['vim-pass']\nhook_add = '''\n  let g:docbase = []\n  call pass#get_startup_funcall(\n        \\ { v -\u003e\n        \\ add(g:docbase,\n        \\   {\n        \\     'domain': 'example1',\n        \\     'token' : v\n        \\   }\n        \\  )\n        \\ },\n        \\ 'Develop/DocBase1'\n        \\)\n  call pass#get_startup_funcall(\n        \\ { v -\u003e\n        \\ add(g:docbase,\n        \\   {\n        \\     'domain': 'example2',\n        \\     'token' : v\n        \\   }\n        \\  )\n        \\ },\n        \\ 'Develop/DocBase2'\n        \\)\n'''\n\n[[plugins]] # Slack\nrepo = 'mizukmb/slackstatus.vim'\ndepends = ['webapi-vim','vim-pass']\nhook_add = '''\n  \" let g:slackstatus_token = '\u003cYOUR_SLACK_TOKEN\u003e'\n  \" my hoge\n  call pass#get_startup('g:slackstatus_token','Message/Slack/myhoge.legacy')\n  \" vim-jp\n  \" call pass#get_startup('g:slackstatus_token','Message/Slack/vim-jp.legacy')\n  \"\n  function! s:slack_list(A,L,P) abort\n    let slacklist = ['myhoge','vim-jp']\n    return slacklist\n  endfunction\n\n  function s:slackstatus_change_token(team) abort\n    let path = 'Message/Slack/' . a:team . '.legacy'\n    let g:slackstatus_token = pass#get(path)\n  endfunction\n\n  command! -nargs=1 -complete=customlist,\u003cSID\u003eslack_list SlackStatusChange :call \u003cSID\u003eslackstatus_change_token(\u003cf-args\u003e)\n'''\n\n[[plugins]] # Mastodon\nrepo = 'mattn/vim-mastodon'\ndepends = ['webapi-vim','vim-pass']\nhook_add = '''\n  \" mstdn.jp\n  \" let g:mastodon_host = 'mstdn.jp'\n  \" call pass#get_startup('g:mastodon_access_token','Message/Mastodon/mstdn.jp')\n\n  function! s:mastodon_completion(A,L,P) abort\n    let host_list = ['mstdn.jp']\n    return join(host_list,\"\\n\")\n  endfunction\n\n  function s:mastodon_change_hosttoken(host) abort\n    let path = 'Message/Mastodon/' . a:host\n    let g:mastodon_host = a:host\n    let g:mastodon_access_token = pass#get(path)\n  endfunction\n\n  command! -nargs=1 -complete=custom,\u003cSID\u003emastodon_completion MastodonHostChange :call \u003cSID\u003emastodon_change_hosttoken(\u003cf-args\u003e)\n'''\n\n```\n\n## limitation\n\n* Currently support API:get(default password/entry select) only\n* Entry select require exact match\n* When plugin's variable configure at load/starup time,sometimes it works not correctly like above Pixela startup-time countup\n* some environment, need `g:pass_use_agent` set as 0 manually (ssh connect cli and non-X11 are automatic set to 0).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuyoshicho%2Fvim-pass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsuyoshicho%2Fvim-pass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsuyoshicho%2Fvim-pass/lists"}