The hacker's BLE (bluetooth low energy) browser terminal app

Overview

blendr

Mood: Blue Crates.io (version) Crates.io

Blendr is a terminal UI app for browsing BLE (Bluetooth Low Energy) devices. It allows you to inspect, search, connect, and analyze data coming from BLE devices directly from your terminal.

It was designed for day-to-day use by BLE engineers so the core features are useful search, direct connection to any characteristic and device with one command, and displaying your custom services names in the UI. Learn more

demo

And it's just perfect to hack your neighbor's toothbrush 😉

Installation

Cargo cli

cargo install blendr

For Unix OS you can run the following, it will install the binary for your system and provide man reference.

curl --proto '=https' --tlsv1.2 -sLSf "https://github.com/dmtrKovalenko/blendr/blob/main/install.sh?raw=true" | sh

For windows, it is required to download and run binary executable directly. Open latest release page and download binary executable for your OS

Prerequisits

MacOS

To use Bluetooth on MacOS Big Sur (11) or later, you need to either package your binary into an application bundle with an Info.plist including NSBluetoothAlwaysUsageDescription, or (for a command-line application such as the examples included with btleplug) enable the Bluetooth permission for your terminal. You can do the latter by going to System Preferences → Security & Privacy → Privacy → Bluetooth, clicking the '+' button, and selecting 'Terminal' (or iTerm or whichever terminal application you use).

Bluetooth settings screenshot

Usage

Get the help information with either man blendr or blendr --help it will print all the available options and characteristics. To get started and learn about the biggest features watch this 2 minutes demo:

video preview

License

This project is licensed under the terms of BSD-3-Clause license

You might also like...
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.
zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets you're watching easily into watchlists for easy access on your terminal.

zigfi zigfi is an open-source stocks, commodities and cryptocurrencies price monitoring CLI app, written fully in Rust, where you can organize assets

A clock app in terminal written in Rust, supports local clock, timer and stopwatch.
A clock app in terminal written in Rust, supports local clock, timer and stopwatch.

clock-tui (tclock) A clock app in terminal. It support the following modes: Clock Timer Stopwatch Countdown Usage Install Install excutable by cargo:

A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.
A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.

Terminal Media Player View images, videos (files or YouTube links), webcam, etc directly in the terminal as ASCII. All images you see below are just m

ask.sh: AI terminal assistant that can read and write your terminal directly!
ask.sh: AI terminal assistant that can read and write your terminal directly!

ask.sh: AI terminal assistant that read from & write to your terminal ask.sh is an AI terminal assistant based on OpenAI APIs such as GPT-3.5/4! What'

A simple and efficient terminal UI implementation with ratatui.rs for getting quick insights from csv files right on the terminal
A simple and efficient terminal UI implementation with ratatui.rs for getting quick insights from csv files right on the terminal

CSV-GREP csv-grep is an intuitive TUI application writting with ratatui.rs for reading, viewing and quickly analysing csv files right on the terminal.

A git sub-command to view your git repository in the web browser
A git sub-command to view your git repository in the web browser

git-view A git sub-command to view your git repository in the web browser! About Are you also frustrated from moving your hands away from the keyboard

A minimal browser with a super simple rendering engine for HTML and CSS, using Rust.

minimal-browser A minimal browser with a super simple rendering engine for HTML and CSS, using Rust. Credit: https://github.com/mbrubeck and https://l

A browser switcher/chooser written in Rust

bro Introduction One project in Rust that allows users to choose their web browser when clicking a link is bro. bro is a command-line utility that all

A resource monitor in your browser, in Rust
A resource monitor in your browser, in Rust

axact A resource monitor in your browser, so you can view the state of a VM or some other remote host. Built with Rust & Preact, see the video: https:

Comments
  • Cargo.toml: Link to repository

    Cargo.toml: Link to repository

    The lack of this metadatum means that users coming from crates.io need to go through heuristics ("the LICENSE file is there, probably also the rest of the project" or "artifacts are stored there, so the implied GitHub project is probably the project's repo") instead of just clicking a link.

    opened by chrysn 0
  • A list of issues from a test drive

    A list of issues from a test drive

    This looks like exactly what I needed for a new BLE MCU project I'm developing so fortuitous timing in your release. Testing this out on Windows 10 (terminal didn't matter. Tested with Windows terminal (wt) + powershell 7, wt + windows powershell, wt + cmd, powershell 7 on default host console), I found a couple of immediate issues

    Duplicated key presses

    All inputs are being duplicated / reacted to twice. Filtering Example (typed /test) image This is also present using the arrow keys to navigate the device list so trying to select a device can be very frustrating

    Pairing

    The device I'm working with requires that the connection is encrypted and blendr (seemingly) doesn't even try to pair. This results in a failed connection which is also not visible inside blendr. It just permanently shows image At the very least "Just Works" pairing would be enough for early dev but support for the full set would be great https://www.bluetooth.com/blog/bluetooth-pairing-part-4/

    Device list re- sorting during scan

    During a scan, devices in the discovered list move. This makes connecting to the right one in a busy BLE environment extremely difficult (I have >50 devices in range)

    u and r keys don't appear to work

    Potentially this is related to the duplicated input, but right now "Hide unknown" and "restart scan" don't appear to do anything

    "Unknown device"

    Currently "unknown device" has no identity information. I have a couple of devices that are only identified by the fixed 48-bit MAC address. They're not standards compliant in any way, they're just known test addresses in my "lab" for running on device BLE checks against.

    Would be good to be able to filter by MAC as well as displaying it. Some of my devices have duplicate names (for... reasons)

    Characteristic Notification/Indication history

    I haven't got this far yet (see pairing) and this is a bit of a wishlist item, but one thing I would really like to have is a log of (multiple) characteristic notifications. Several sensors I use transmit updates at a moderate frequency via notifications and being able to observe/record the history would be great

    opened by Crzyrndm 8
Owner
Dmitriy Kovalenko
Typed JavaScript and quality software fanatic. Reasonml and OCaml evangelist. Testing quality consultant. |> Making bugs for open source since 2016 😕
Dmitriy Kovalenko
For a hackers in rust.

My Leetcode Solution in Rust Run cargo run {id} to initialize the template submission file of "question #id". Run cargo test test_{id} to test the sol

World Best 6 Nov 2, 2023
🛜 TUI for managing bluetooth devices

TUI for managing bluetooth devices ?? Prerequisites A Linux based OS with bluez installed. ?? Installation ?? Binary release You can download the pre-

BADR 99 Mar 24, 2024
Coppers is a custom test harnass for Rust that measures the energy usage of your test suite.

Coppers Coppers is a test harness for Rust that can measure the evolution of power consumptions of a Rust program between different versions with the

Thijs Raymakers 175 Dec 4, 2022
auto-epp-rs is a program that manages the energy performance preferences (EPP) of your AMD CPU using the AMD-Pstate driver.

auto-epp-rs is a program that manages the energy performance preferences (EPP) of your AMD CPU using the AMD-Pstate driver. It adjusts the EPP settings based on whether your system is running on AC power or battery power, helping optimize power consumption and performance. This project is a rewrite of the original Python version jothi-prasath/auto-epp in Rust, aiming to improve memory efficiency and overall performance.

Taufik Hidayat 3 Nov 3, 2023
Low-level Rust library for implementing terminal command line interface, like in embedded systems.

Terminal CLI Need to build an interactive command prompt, with commands, properties and with full autocomplete? This is for you. Example, output only

HashMismatch 47 Nov 25, 2022
Tool to draw low-resolution graphs in terminal

lowcharts Tool to draw low-resolution graphs in terminal. lowcharts is meant to be used in those scenarios where we have numerical data in text files

juanleon lahoz 114 Dec 31, 2022
A todo list app that indexes your app to find TODO:'s

forgot A todo list app that indexes your app to find TODO:'s Usage to list all your todos forgot list list all your todos ignoring search in ./target,

null 2 Oct 6, 2022
Simple Interactive Terminal Todo App in Rust

todo-rs Simple Interactive Terminal Todo App in Rust Quick Start $ cargo run TODO Controls Keys Description k, j Move cursor up and down Shift+K, Shif

Tsoding 56 Dec 8, 2022
Replace an app's icon from a png with a single terminal script. Made with Rust

Replace macOS App Icon Replace an app's icon from a png with a single terminal CLI. Made with Rust

Kunal Bagaria 8 Aug 3, 2022
Simple system monitoring app that runs on terminal. Made purely with Rust.

What is it? RCTOP is a simple WIP system monitoring app that runs purely on terminal and doesn't feature GUI. One can compare it to htop, but more str

Niko Huuskonen 7 Oct 14, 2022