Command line utility which uses REST API to interact with your Papermerge DMS
instance. You can use papermerge-cli
, for example, to recursively import local folder to
your Papermerge DMS instance.
In order to use papermerge-cli
you need to have python installed.
You need python version >= 3.10.
$ pip install papermerge-cli
pip is package installer for python - it usually comes with python
interpreter. In order to install pip
on Ubuntu use following command:
$ sudo apt install python3-pip
REST API column - is version of Papermerge REST API server. This value you can get from:
$ papermerge-cli server-version
CLI column - is version of papermege-cli command line utility. This value you can get from:
$ papermerge-cli --version
REST API | CLI |
---|---|
=3.0 | =0.7 |
=2.1 | = 0.3.3 |
Get you REST API authentication token from your instance:
$ papermerge-cli --host=https://mydms.some-vps.com auth
Or you can provide host as environment variable:
$ export PAPERMERGE_CLI__HOST=https://mydms.some-vps.com
$ papermerge-cli auth
Papermerge Cli will prompt you for username and password. On successfull authentication your REST API token will be displayed - now you can use this token for all subsequent authentications.
Use token for authentication by exporting token as PAPERMERGE_CLI__TOKEN
environment variable:
$ export PAPERMERGE_CLI__TOKEN=mytoken
Now, with PAPERMERGE_CLI__HOST
and PAPERMERGE_CLI__TOKEN
environment
variables set you can use list content of you home folder:
$ papermerge-cli list
In order to list content of specific folder (including inbox folder):
$ papermerge-cli list --parent-uuid=UUID-of-the-folder
In order to see current user details (current user UUID, home folder UUID, inbox folder UUID, username etc):
$ papermerge-cli me
List all preferences:
$ papermerge-cli pref-list
List specific section of the preferences
$ papermerge-cli pref-list --section=ocr
Show value of preference trigger
from section ocr
:
$ papermerge-cli pref-list --section=ocr --name=trigger
Update value of the preference trigger
from section ocr
:
$ papermerge-cli pref-update --section=ocr --name=trigger --value=auto
Recursively imports folder from local filesystem. For example, in order to import recursively all documents from local folder:
$ papermerge-cli import /path/to/local/folder/
You can also import one single document
$ papermerge-cli import /path/to/some/document.pdf
If you want the local copy the uploaded documents to be deleted after
successful import - add --delete
flag:
$ papermerge-cli import --delete /path/to/folder/
PLEASE BE CAREFUL WITH --delete
FLAG AS IT WILL IRREVERSIBLE DELETE THE LOCAL
COPY OF THE UPLOADED DOCUMENT!
Choose to skip OCR of imported documents with --skip-ocr
flag:
$ papermerge-cli import --skip-ocr /path/to/folder/
Skip OCR flag can be used with folders (will apply to all docs in the folder)
or with individual documents.
--skip-ocr
flag will work only with Papermerge REST API >= v3.1
Search for node (document or folder) by text or by tags:
$ papermerge-cli search -q apotheke
Returns all documents (or folders with such title) containing OCRed text 'apotheke'.
You can search by tags only:
$ papermerge-cli search --tags important
Will search for all documents (and folders) which were tagged with tag 'important' When multiple tags are provided, by default, will search for nodes with all mentioned tags:
$ papermerge-cli search --tags important,letters # returns nodes with both tags important AND letters
In case you want to search for nodes with ANY of the provided tags, use
tags-op
parameter:
$ papermerge-cli search --tags important,letters --tags-op any
Finally, tags
and q
may be combined:
$ papermerge-cli search --tags important -q apartment
Downloads a folder or a document:
$ papermerge-cli download --uuid <document or folder uuid>
In case uuid is the ID of specific folder - a zip file will be downloaded; zip file will contain all nodes insides specified folder.
You can use --uuid
multiple times:
$ papermerge-cli download --uuid <uuid of doc1> --uuid <uuid of doc2> --uuid <uuid of folder 1>
If you want to download content to specific file on your file-system, use -f
option:
$ papermerge-cli download --uuid <doc-uuid> -f /path/to/file-system/document.pdf
or in case of uuid is a folder:
$ papermerge-cli download --uuid <folder-uuid> -f /path/to/file-system/folder.zip
You can also specify the format/type of the downloaded archive (e.g. in case node is either a folder):
$ papermerge-cli download --uuid <folder-uuid> -f /path/to/file-system/folder.targz -t targz
CLI Version | REST API version | Remarks |
---|---|---|
0.7.0 | 3.0.x | |
0.7.1 | 3.0.x | |
0.8.0 | 3.1.x | Skip OCR feature introduced |