Bmr is a Bitmessage client written in Node.js using the node-webkit desktop application framework. It is a self-contained Bitmessage client for reading messages that you can run on your desktop and connect to your Bitmessage server.
Bmr is available for Linux, Mac and Windows desktops.
The goal of Bmr is to provide a better Bitmessage user experience than the default client.
Bmr is in active development: Bmr-v0.0.3 is the current release version.
Download, unzip and double-click on "Bmr" app.
It is advised you always use an SSH tunnel to your Bitmessage server when running Bmr remotely (see security section below).
Please help improve Bmr by filing bugs or sending in feature requests to the Github issue tracker. You can also ask in the Bmr support channel:
Passphrase: Bmr
Address: BM-2cXEHofo7LieKNGNmAPypDUej9BRQvuFYS
You must already have the Bitmessage PyBitmessage server API running locally with api enabled (see the instructions for installation).
Find your keys.dat
file:
# Linux
~/.config/PyBitmessage/keys.dat
# Mac
~/Library/Application Support/PyBitmessage/keys.dat
# Windows
C:\Users\[Username]\AppData\Roaming\PyBitmessage\keys.dat
Add the following lines to the bottom of the [bitmessagesettings]
section:
[bitmessagesettings]
#...other config options
apienabled = true
apiport = 8442
apiinterface = 0.0.0.0
apiusername = edward
apipassword = 5n0wd3n
If you want to run PyBitmessage in Daemon mode without the PyQT client starting, add daemon = true
to [bitmessagesettings]
.
Download the latest Bmr release for your platform (Windows, Linux, Mac).
To run Bmr from source (to track development inbetween releases), you first need to download node-webkit on your system.
You will need node.js installed on your system to run the 'npm install' command. You can download it from http://nodejs.org or install with brew.
To install Bmr, you need to clone the git repository:
git clone https://github.com/chovy/bmr.git
cd ./bmr/app
npm install
Once you download the node-webkit
binary, just copy it into the ./bmr/app
directory and then double-click it to launch Bmr.
To update the code just type git pull
.
If you are running from source, you will need to build the app. Specifically you will need to compile the CSS and Handlebars templates. First, cd ./bmr
grunt sass
grunt shell:handlebars
If you are developing and want to automatically compile the CSS and templates when you modify files, you can use the grunt watch task:
grunt watch
Whenever you modify .sass files or .tpl files, the grunt task will precompile the CSS and templates.js files automatically.
Bmr has been tested with MacOS 10.8.4, but these steps should work for Linux too.
If anyone can get this to work on Windows, let me know the steps and I'll add them here.
Below is a list of some of the hidden features in Bmr.
In the search filter fields on Inbox and Sent box you can type the following meta filters to search specific fields:
:unread
:read
:to <bm-address-partial>
:from <bm-address-partial>
<subject-partial>
On tables, you can multi select ranges of items by holding the "shift" key, then checking another box a few rows down. You can also hold the "cmd" (mac), "ctrl" (win/linux) key and click the "select all" checkbox to invert the selection.
- click on
identities
tab create deterministic address
with channel name as thepassphrase
subscribe
to this address (copy from bottom ofidentities
page) giving it a label (usually the passphrase).
The API doesn't support joining a channel yet. Its on the todo list to write a function that will do the above steps for you.
Right click on any message body to get more choices:
- quote selected text in reply
- search Google for selected text
- translate selected text using Google translate
On the settings page you can define an optional proxy service to pass links through that appear in the message body next to links [proxy]
.
You can also choose an audio file to play when a message arrives in your Inbox.
Join the Bmr channel:
Passphrase: Bmr
Address: BM-2cXEHofo7LieKNGNmAPypDUej9BRQvuFYS
It is insecure to use a remote Bitmessage API directly, as all XMLRPC API calls go over the web using http in cleartext. That means when your Inbox is downloaded, or when you send a message, the content goes out over the web in plain text (unencrypted).
To protect against this, it is better to open an SSH tunnel to the host your PyBitmessage API/server is running on. You can forward a local port on your computer to a destination port (typically 8442) on the server (you only need to open up port 8444 in your firewall on the server to transmit to and from the Bitmessage peers, you do not need to open up port 8442 for the API, as the tunnel will connect locally to it on the server).
This command will forward port 8422 on your local computer to port 8442 on the server, using SSH as a tunnel (typically port 22) to your Bitmessage server host:
ssh -N -L 8442:localhost:8442 <remote-bitmessage-server-hostname>
When you login to Bmr locally, just use localhost
as the hostname and port 8442
. This will encrypt all communication to the API using SSH before it leaves your computer. You can use whatever port you want locally (the first port defined above).
For windows: use Putty and setup an SSH tunnel for Source port 8442
and Destination localhost:8442
under Tunnels
. Then connect normally to your host via SSH Session
By doing this, you are effectively making the API calls directly on the server over SSH. So they are not going out over the web using http to the API.
Login to PyBitmessage server (use SSH tunnel for remote access):
Compose a new message:
Read a new message:
Reply to a message:
Subscriptions list:
Filter inbox using the meta filter ":unread":
Search or quote highlighted text:
Optionally render HTML in messages: