{"id":14980343,"url":"https://github.com/mircobabin/keepasscommander","last_synced_at":"2026-02-12T16:04:46.964Z","repository":{"id":43036800,"uuid":"165256032","full_name":"MircoBabin/KeePassCommander","owner":"MircoBabin","description":"A KeePass plugin to provide a communication channel for PHP scripts, Windows CMD/BAT/PowerShell scripts, Python, C#, Lua, git, etc. to query the KeePass password store without requiring configuration or passwords.","archived":false,"fork":false,"pushed_at":"2024-11-22T15:44:35.000Z","size":76882,"stargazers_count":37,"open_issues_count":3,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-29T00:42:07.815Z","etag":null,"topics":["batch-script","commandline","csharp","keepass","php-script","powershell-script","python"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MircoBabin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2019-01-11T14:24:30.000Z","updated_at":"2025-10-28T11:22:44.000Z","dependencies_parsed_at":"2024-10-11T21:01:28.126Z","dependency_job_id":"392bcd41-4b42-4f49-8908-63899b81a70b","html_url":"https://github.com/MircoBabin/KeePassCommander","commit_stats":{"total_commits":80,"total_committers":4,"mean_commits":20.0,"dds":"0.30000000000000004","last_synced_commit":"eddfaf6cba7df96ebf6664911f08e2a18d7c4445"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/MircoBabin/KeePassCommander","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MircoBabin%2FKeePassCommander","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MircoBabin%2FKeePassCommander/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MircoBabin%2FKeePassCommander/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MircoBabin%2FKeePassCommander/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MircoBabin","download_url":"https://codeload.github.com/MircoBabin/KeePassCommander/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MircoBabin%2FKeePassCommander/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29371480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["batch-script","commandline","csharp","keepass","php-script","powershell-script","python"],"created_at":"2024-09-24T14:01:38.142Z","updated_at":"2026-02-12T16:04:46.959Z","avatar_url":"https://github.com/MircoBabin.png","language":"C#","readme":"[![Github All Releases](https://img.shields.io/github/downloads/MircoBabin/KeePassCommander/total)](https://github.com/MircoBabin/KeePassCommander/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/MircoBabin/KeePassCommander/blob/master/LICENSE.md)\n\n# KeePass Commander\nKeePass Commander is a plugin for the [KeePass password store](https://keepass.info/ \"KeePass\") program. \nIt is a command-line tool that provides a communication channel for PHP scripts, Windows CMD/BAT/PowerShell scripts, Python, C#, Lua, git, etc. to query the KeePass password store without requiring configuration or passwords.\n\nIt can also query KeePass from within a [Virtual Machine](docs/VirtualMachine.md). Read the [documentation here](docs/VirtualMachine.md).\n\n![Screenshot](screenshot.png)\n\n# Download binary\nFor Windows (.NET framework 4), [the latest version can be found here](https://github.com/MircoBabin/KeePassCommander/releases/latest \"Latest Version\").\nThe plugin works with KeePass 2.44. Because the plugin barely uses anything from KeePass, it will probably work with all future KeePass versions.\n\nDownload the zip and unpack it in the KeePass directory where KeePass.exe is located.\n\nThe minimum .NET framework required is 4.0.\n.NET framework version 3.5 is the first framework to implement the System.IO.Pipes namespace, but KeePass only supports v4.0 and v2.0.50727.\n\n*For unattended automatic installation scripts, read the section \"Automatic installation scripts\" lower down the page.*\n\n# Help\n\nExecute **KeePassCommand.exe** without parameters to view the help.\n\n```\n\nKeePassCommand 4.6\nhttps://github.com/MircoBabin/KeePassCommander - MIT license\n\nKeePass Commander is a plugin for the KeePass password store (https://keepass.info/).\nIt is a command-line tool that provides a communication channel for PHP scripts, Windows CMD/BAT/PowerShell scripts, Python, C#, git, etc. to query the KeePass password store without requiring configuration or passwords.\n\nSyntax: KeePassCommand.exe \u003ccommand\u003e {-filesystem:folderpath OR -namedpipe} {-out:outputfilename OR -out-utf8:outputfilename} ...\n- If neither -filesystem nor -namedpipe is specified, the default will be Named Pipe. Unless the configuration file KeePassCommand.config.xml specifies other.\n- When -namedpipe is specified, communication will be encrypted via a Named Pipe.\n- When -filesystem:folderpath is specified, communication will be via encrypted files inside shared folder folderpath. A special KeePass entry with title starting with \"KeePassCommander.FileSystem\", with folderpath as url, and notes like listgroup must be present for this to work. The purpose is querying from inside a Virtual Machine. See https://github.com/MircoBabin/KeePassCommander/docs/VirtualMachine.md for more information.\n- Unless -out or -out-utf8 is used, output will be at the console (STDOUT) (without BOM).\n- If -stdout-utf8 is used, output at the console (STDOUT) will always use UTF-8 codepage (with BOM).\n- If -stdout-utf8nobom is used, output at the console (STDOUT) will always use UTF-8 codepage (without BOM).\n- When -out-utf8:outputfile is used, output will be written in outputfile using UTF-8 codepage (with BOM).\n- When -out:outputfile is used, output will be written in outputfile using ANSI codepage.\n- \"KeePass-entry-title\" must exactly match (case sensitive), there is no fuzzy logic. All open databases in KeePass are searched.\n- When the expected \"KeePass-entry-title\" is not found (you know it must be there), you can assume KeePass is not started or the required database is not opened.\n\n* Basic get\nKeePassCommand.exe get \"KeePass-entry-title\" \"KeePass-entry-title\" ...\ne.g. KeePassCommand.exe get \"Sample Entry\"\n- \"Note\" is outputted as UTF-8, base64 encoded.\n\n* Advanced get string field\nKeePassCommand.exe getfield \"KeePass-entry-title\" \"fieldname\" \"fieldname\" ...\ne.g. KeePassCommand.exe getfield \"Sample Entry\" \"extra field 1\" \"extra password 1\"\n- \"Value\" is outputted as UTF-8, base64 encoded.\n\n* Advanced get string field RAW\nKeePassCommand.exe getfieldraw \"KeePass-entry-title\" \"fieldname\"\ne.g. KeePassCommand.exe getfieldraw -out-utf8:myfield.txt \"Sample Entry\" \"extra field 1\"\n- With -out-utf8, \"Value\" is outputted as UTF-8.\n- With -out, \"Value\" is outputted in ANSI codepage.\n- Without -out*, \"Value\" is outputted at the console (STDOUT).\n\n* Advanced get file attachment\nKeePassCommand.exe getattachment \"KeePass-entry-title\" \"attachmentname\" \"attachmentname\" ...\ne.g. KeePassCommand.exe getattachment \"Sample Entry\" \"example_attachment.txt\"\n- Attachment is outputted as binary, base64 encoded.\n\n* Advanced get file attachment RAW\nKeePassCommand.exe getattachmentraw \"KeePass-entry-title\" \"attachmentname\"\ne.g. KeePassCommand.exe getattachmentraw \"Sample Entry\" \"example_attachment.txt\"\n- With -out, attachment is saved in outputfilename, outputted as binary.\n- Without -out*, attachment is outputted binary at the console (STDOUT).\n\n* Advanced get note\nKeePassCommand.exe getnote \"KeePass-entry-title\" \"KeePass-entry-title\" ...\ne.g. KeePassCommand.exe getnote \"Sample Entry\"\n- \"Note\" is outputted as UTF-8, base64 encoded.\n\n* Advanced get note RAW\nKeePassCommand.exe getnoteraw \"KeePass-entry-title\"\ne.g. KeePassCommand.exe getnoteraw \"Sample Entry\"\n- With -out-utf8, \"Note\" is outputted as UTF-8.\n- With -out, \"Note\" is outputted in ANSI codepage.\n- Without -out*, \"Note\" is outputted at the console (STDOUT).\n\n* Advanced list titles in group\nKeePassCommand.exe listgroup \"KeePass-entry-title\"\ne.g. KeePassCommand.exe listgroup \"All Entries\"\n- The queried entry note may contain the line \"KeePassCommanderListGroup=true\".\n  This is not recursive, only titles in the current group are listed.\n- The queried entry note may contain lines \"KeePassCommanderListAddItem={title}\".\n- Output is one title per line, unique sorted on titlename.\n- There is no SUCCESS or ERROR indication in the output.\n\n* sign using buildstamp ( https://github.com/MircoBabin/BuildStamp )\nKeePassCommand.exe sign-using-buildstamp \"KeePass-entry-title\" \"filename\"\ne.g. KeePassCommand.exe sign-using-buildstamp \"SafeNet Token\" \"c:\\my-project\\bin\\release\\my-executable.exe\"\n- The queried entry must contain the advanced field \"buildstamp-exe\" pointing to buildstamp.exe on the host running KeePass.\n- The advanced field \"buildstamp-exe[...lowercase computername of KeePass host...]\" is preferred.\n- The advanced field \"--signtool-exe[...lowercase computername of KeePass host...]\" is preferred.\n- The advanced field \"--pkcs11-driver[...lowercase computername of KeePass host...]\" is preferred.\n- The exitcode is the exitcode of buildstamp.exe. Exitcode will be 99 if buildstamp.exe is not startable.\n- Output will be the stdout output followed by the stderr output of buildstamp.exe.\n\n--- LICENSE ---\nKeePass Commander\nMIT license\n\nCopyright (c) 2018 Mirco Babin\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\n```\n\n# Examples\n\nExamples are found in the github directory **[example](example)**.\n\n- example.kdbx is a KeePass database. It's master password is **example**.\n- [FromPhp.php](example/FromPhp.php) can be used to query the KeePass password store from PHP. With minimal modifications you can use it anywhere.\n- [FromBat.bat](example/FromBat.bat) can be used to query the KeePass password store from a BAT file. With minimal modifications you can use it anywhere.\n- [FromPowershell.ps1](example/FromPowershell.ps1) can be used to query the KeePass password store from PowerShell. With minimal modifications you can use it anywhere.\n- [FromPython.py](example/FromPython.py) can be used to query the KeePass password store from Python. With minimal modifications you can use it anywhere.\n- [FromLua.lua](example/FromLua.lua) can be used to query the KeePass password store from Lua. With minimal modifications you can use it anywhere.\n- [CsharpExample](example/CsharpExample/src/CsharpExample/Program.cs) can be used to query the KeePass password store from C#. With minimal modifications you can use it anywhere.\n\n# GIT\n\nUsing [Git Credentials via KeePassCommander](https://github.com/MircoBabin/GitCredentialsViaKeePassCommander) the credentials for git repositories can be queried from KeePass upon a pull or push command.\n\n# Code signing certificate\n\nUsing [BuildStamp](https://github.com/MircoBabin/BuildStamp) the code signing certificate can be stored in the KeePass password store. And used to digitally sign executables.\n\n# Virtual Machine\n\nVia a shared folder it is possible to query the KeePass password store on the host (running outside the Virtual Machine) from within a Virtual Machine. Read the [documentation here](docs/VirtualMachine.md).\n\n# Listgroup\n\nWith the ```listgroup``` command multiple titles can be grouped in KeePass. They can be processed in a ```foreach``` kind a manner. Read the [documentation here](docs/ListGroup.md).\n\n# Why\nThe plugin [KeePassHttp](https://github.com/pfn/keepasshttp/) already exists for querying the password store. \nI did not want to use this plugin, because it embeds a http server inside KeePass. \nAnd I don't want to \"pair\" with a code, because I want to communicate from the commandline, without configuration.\n\nSo I build KeePassCommander.dll plugin which runs a Windows named-pipe-server inside KeePass. And a KeePassCommand.exe commandline tool to communicate with KeePassCommander.dll. \n\nI'm using this plugin among other things to automate DeployHQ. In KeePass I store the DeployHQ API key. From a php script the API key is queried and then used.\n\nWhen I had to maintain a Delphi project, I decided it was best to install a development Virtual Machine. The VM contains the Delphi Alexandria IDE and lots of purchased components that were installed scattered all around the virtual harddisk. Because I run KeePass on the host (outside the Virtual Machine) and use Git inside the Virtual Machine, I created a new filesystem communication channel, next to the named pipe communication channel. This way I still have one KeePass (outside the Virtual Machine) that is also used inside the Virtual Machine. Making it possible to backup the Virtual Machine without having any passwords inside it.\n\n# Automatic installation scripts\nFor unattended installation scripts the following flow can be used for the latest version:\n\n1) Download https://github.com/MircoBabin/KeePassCommander/releases/latest/download/release.download.zip.url-location\n2) Read the text of this file into **latest-download-url**. The file only contains an url, so the encoding is ASCII. *The encoding UTF-8 may also be used to read the file, because ASCII is UTF-8 encoding.*\n3) Download the zip from the **latest-download-url** to local file **KeePassCommander.zip**. *Each release carries the version number in the filename. To prevent not knowing the downloaded filename, download to a fixed local filename.*\n4) Unpack the downloaded **KeePassCommander.zip** in the KeePass directory where KeePass.exe is located.\n\n# Debug\n\nVia KeePass commandline options this plugin can write logging. Use --KeePassCommanderDebug=*full-path-to-filename* to specify the filename.\n\n```\nKeePass.exe --debug --KeePassCommanderDebug=c:\\incoming\\KeePassCommander.log\n```\n\n# Contributions\nContributions are welcome. Please read [CONTRIBUTING.md](CONTRIBUTING.md \"contributing\") before making any contribution!\n\n# License\n[The license is MIT.](LICENSE.md \"license\")\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmircobabin%2Fkeepasscommander","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmircobabin%2Fkeepasscommander","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmircobabin%2Fkeepasscommander/lists"}