This is mainly for Linux and Mac as they do not have good client.

It requires relatively modern Perl - 5.1x should work. I have

➜  ~  perl --version
This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)

Get the kpcli distribution Download from Sourceforge - or get the attached script

Make it executable and put it on the path:

mv ~/Downloads/ ~/bin
chmod +x ~/bin/

It will not work out of the box unless you install few Perl modules.

Easiest way is to use cpanm, which is installed using cpan

# Run CPAN and let it configure itself if run for the first time
# install cpanm using cpan
sudo cpan App::cpanminus

Now we can use cpanm to proceed

sudo cpanm Crypt::Rijndael
sudo cpanm Sort::Naturally
sudo cpanm Term::ShellUI
sudo cpanm File::KeePass
# I had issues with Readline::Gnu
sudo cpanm Term::ReadLine::Gnu
# so I installed Perl5 version instead
sudo cpanm Term::ReadLine::Perl5
sudo cpanm Clipboard
sudo cpanm Capture:Tiny
sudo cpanm Capture::Tiny
~/bin/ --help

Now it can be run and open file. After opening you can navigate in the password file as in file system (try pwd, cd, ls) and copy password to clipboard (try h)

➜  Sites git:(master) ✗ ~/bin/ --kdb ~/PASSWORDS/PAL.kdbx
Please provide the master password: *************************
KeePass CLI (kpcli-3.0) v3.0 is ready for operation.
Type 'help' for a description of available commands.
Type 'help <command>' for details on individual commands.
* NOTE: You are using Term::ReadLine::Perl5.
  Term::ReadLine::Gnu will provide better functionality.
kpcli-3.0:/> ls
=== Groups ===
kpcli-3.0:/> h
  attach -- Manage attachments: attach <path to entry|entry number>
      cd -- Change directory (path to a group)
      cl -- Change directory and list entries (cd+ls)
   clone -- Clone an entry: clone <path to entry> <path to new entry>
   close -- Close the currently opened database
     cls -- Clear screen ("clear" command also works)
    copy -- Copy an entry: copy <path to entry> <path to new entry>
    edit -- Edit an entry: edit <path to entry|entry number>
  export -- Export entries to a new KeePass DB (export <file.kdb> [<file.key>])
    find -- Finds entries by Title
    help -- Print helpful information
 history -- Prints the command history
   icons -- Change group or entry icons in the database
  import -- Import a password database (import <file> <path> [<file.key>])
      ls -- Lists items in the pwd or specified paths ("dir" also works)
   mkdir -- Create a new group (mkdir <group_name>)
      mv -- Move an item: mv <path to a group|or entries> <path to group>
     new -- Create a new entry: new <optional path&|title>
    open -- Open a KeePass database file (open <file.kdb> [<file.key>])
    pwck -- Check password quality: pwck <entry|group>
     pwd -- Print the current working directory
    quit -- Quit this program (EOF and exit also work)
  rename -- Rename a group: rename <path to group>
      rm -- Remove an entry: rm <path to entry|entry number>
   rmdir -- Delete a group (rmdir <group_name>)
    save -- Save the database to disk
  saveas -- Save to a specific filename (saveas <file.kdb> [<file.key>])
    show -- Show an entry: show [-f] [-a] <entry path|entry number>
   stats -- Prints statistics about the open KeePass file
     ver -- Print the version of this program
    vers -- Same as "ver -v"
      xp -- Copy password to clipboard: xp <entry path|number>
      xu -- Copy username to clipboard: xu <entry path|number>
      xw -- Copy URL (www) to clipboard: xw <entry path|number>
      xx -- Clear the clipboard: xx
Type "help <command>" for more detailed help on a command.