Skip to main content

A simple command-line Jami (jami.net) client

Project description

PRE-INSTALLATION

Before you install jami-commander with pip install jami-commander you must have followed these prerequisites steps!

  • You must have Python 3.12+ installed. 3.11 might work.
  • Run python -V to get your Python version number.
  • Read the README.md file to see how to install and run Jami daemon jamid.

jami-commander

Jami (https://jami.net) is a privacy-preserving peer-to-peer communication application available on many platforms. Jami is in concept similar to Keet (https://keet.io), both are peer-to-peer and use servers as little as possible. As a chat app it is similar to Matrix (https://http://matrix.org) as both can be self-hosted.

jami-commander (jc for short) is a simple but convenient CLI-based Jami client app for setting up accounts and swarms as well as sending.

jami-commander helps to set up a Jami account, configure the account and send messages and files to Jami peers. It provides the minimal set of commands to use Jami from the CLI.

The objective of jami-commander is to:

  • be able to use Jami from the terminal, the CLI, via SSH, and on head-less servers without monitor.
  • to use minimal resources. No Jami front-end (GUI) needs to be installed.
  • to be able to run it e.g. on a headless Raspberry Pi
  • to be able to perform minimal operations to run a bot, e.g. to publish daily weather information
  • be simple. It is written in Python.

Functionality is minimal. You are invited to help to improve jami-commander. Pull requests are welcome.

Installation and Prerequisites

  • jami-commander is only a client. It requires the Jami jamid daemon to run to performs the work.
  • first install Jami daemon jamid as follows:
    • e.g. on Fedora 40 (see https://jami.net/download-jami-linux/ for details)
    • sudo dnf-3 config-manager --add-repo https://dl.jami.net/stable/fedora_40/jami-stable.repo # add the Jami repo
    • sudo dnf install jami-daemon # install only the jamid daemon
    • e.g. on Ubuntu 24.04 (see https://jami.net/download-jami-linux/ for details)
    • </code></pre>
      </li>
      </ul>
      </li>
      </ul>
      <p>curl -s <a href="https://dl.jami.net/public-key.gpg">https://dl.jami.net/public-key.gpg</a> | sudo tee /usr/share/keyrings/jami-archive-keyring.gpg > /dev/null
      sudo sh -c "echo 'deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] <a href="https://dl.jami.net/stable/ubuntu_24.04/">https://dl.jami.net/stable/ubuntu_24.04/</a> jami main' > /etc/apt/sources.list.d/jami.list"
      sudo apt-get update && sudo apt-get install jami-daemon # install only the jamid daemon```</p>
      <ul>
      <li>This installs around 204MB on Ubuntu</li>
      <li>second install dependencies
      <ul>
      <li>e.g. Ubuntu 24.04</li>
      <li><code>sudo apt install libdbus-1-dev libglib2.0-dev libcairo2-dev libgirepository1.0-dev</code></li>
      </ul>
      </li>
      <li>third install <code>jami-commander</code>
      <ul>
      <li><code>pip install jami-commander</code></li>
      <li>see also <a href="https://pypi.org/pypi/jami-commander">https://pypi.org/pypi/jami-commander</a></li>
      </ul>
      </li>
      <li>run the <code>jamid</code> daemon:
      <ul>
      <li>e.g. on Fedora 40, similar on Ubuntu 24.04, etc.</li>
      <li><code>/usr/libexec/jamid -p & # start the jamid daemon</code></li>
      </ul>
      </li>
      <li>now you can start and run the <code>jami-commander</code>
      <ul>
      <li>try <code>jami-commander -h</code> first to see what is available</li>
      </ul>
      </li>
      </ul>
      <h1>Features</h1>
      <pre><code>jami-commander supports these arguments:
      
      --usage
        Print usage.
      -h, --help
        Print help.
      --manual
        Print manual.
      --readme
        Print README.md file.
      -d, --debug
        Print debug information.
      --log-level DEBUG|INFO|WARNING|ERROR|CRITICAL [DEBUG|INFO|WARNING|ERROR|CRITICAL ...]
        Set the log level(s).
      --verbose
        Set the verbosity level.
      --get-enabled-accounts
        List all enabled accounts by ids.
      --add-account ALIAS HOSTNAME USERNAME PASSWORD
        Add a new Jami account.
      --remove-account ACCOUNTID [ACCOUNTID ...]
        Remove a Jami account.
      --get-conversations
        List all swarm conversations by ids.
      --add-conversation
        Add a conversation to an account.
      --remove-conversation
        Remove one or multiple conversations from an account.
      --get-conversation-members
        List all members of one or multiple swarm conversations by ids.
      --add-conversation-member USERID [USERID ...]
        Add member(s) to one or multiple swarm conversations.
      --remove-conversation-member USERID [USERID ...]
        Remove member(s) from one or multiple swarm conversations.
      -a ACCOUNTID, --account ACCOUNTID
        Connect to and use the specified account.
      -c CONVERSATIONID [CONVERSATIONID ...], --conversations CONVERSATIONID [CONVERSATIONID ...]
        Specify one or multiple swarm conversations.
      -m TEXT [TEXT ...], --message TEXT [TEXT ...]
        Send one or multiple text messages.
      -f FILE [FILE ...], --file FILE [FILE ...]
        Send one or multiple files (e.g. PDF, DOC, MP4).
      -w, --html
        Send message as format "HTML".
      -z, --markdown
        Send message as format "MARKDOWN".
      -k, --code
        Send message as format "CODE".
      -j, --emojize
        Send message after emojizing.
      --split SEPARATOR
        Split message text into multiple Jami messages.
      --separator SEPARATOR
        Set a custom separator used for certain print outs.
      -o TEXT|JSON, --output TEXT|JSON
        Select an output format.
      -v [PRINT|CHECK], -V [PRINT|CHECK], --version [PRINT|CHECK]
        Print version information or check for updates.
      

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jami_commander-0.5.0.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

jami_commander-0.5.0-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

Details for the file jami_commander-0.5.0.tar.gz.

File metadata

  • Download URL: jami_commander-0.5.0.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for jami_commander-0.5.0.tar.gz
Algorithm Hash digest
SHA256 204db849128c255be7c3a5f81be1b07a5ea70df40f4664c119a285981e5accf7
MD5 5017a6a6ee21b9acb6a5346cbcad85c4
BLAKE2b-256 2e181c4be21a5250b1359e7343c8041b2966df7b31ba2e6dcd9af54437c7e082

See more details on using hashes here.

File details

Details for the file jami_commander-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jami_commander-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96a6ec874d3c3cf9062d61f608c2bcb3dd4ea61704c5686d9279e1a609bf140e
MD5 19ce4c7aad6dd8329741f41cf9f941ca
BLAKE2b-256 7f4622a3360fe2c29686f7944924e9630e26d54dc7d8a764d7f1335952c67ca5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page