4 stable releases

1.0.6 Apr 10, 2024
1.0.5 Mar 20, 2024
1.0.1 Mar 17, 2024

#57 in Command-line interface

Download history 118/week @ 2024-03-12 198/week @ 2024-03-19 16/week @ 2024-03-26 50/week @ 2024-04-02 108/week @ 2024-04-09 2/week @ 2024-04-16

241 downloads per month

MIT license

89KB
2K SLoC

MeiliFinder ʕʘ̅͜ʘ̅ʔ

The ultimate Meilisearch client for your terminal!

MeiliFinder is a beautiful and fast terminal-based Meilisearch client built with Rust 🦀 and Ratatui.

Why MeiliFinder?

Meilisearch is great; but there is no official client available for it. While there are some community-built clients, they are mostly web-based and lack important features. If you are a terminal lover like me or hate mouse, you may want to use a terminal-based client to interact with Meilisearch. That's where MeiliFinder comes in. It is fast, robust, lightweight, and easy to use. It is also open-source, so you can contribute to the project and make it better.

Features

  • Search for documents
  • Search for documents with sort and filters queries
  • Search for documents with pagination
  • Delete individual documents
  • Bulk delete documents by filter
  • Connect to multiple Meilisearch instances
  • edit documents
  • update index settings
  • Switch between indexes and instances on the fly
  • Tasks preview
  • settings.json file for customizing the app
  • Toast notifications

Using

Clone the repository and run cargo run in the root directory. In case you don't have an instances.json file in the root directoty, it will prompt you to enter the Meilisearch instance URL and the API key. Once you enter the details, the app will save the info in a new instances.json file, and you can start searching for documents.

To exit the app, press q or Ctrl+C.

Screenshots

Documents Tab Document search Document preview Bulk Delete action Indices Tasks

Shortcuts

Normal mode

  • tab - Switch between different tabs in the app.
  • r - Refresh current list.
  • s - Go to Search mode (insert search queries).
  • Up/Down - Navigate through the current list.
  • Enter - Select the current index/instance.
  • Space - Quick preview of the highlighted document.
  • Ctrl+u - Reset all search queries.
  • q - Quit the app.
  • Ctrl+C - Quit the app.

Search mode

  • Esc - Exit search mode.
  • tab - Navigate through search/filter/sort queries.
  • Enter - Perform search.

Preview mode

  • Esc - Exit preview mode.
  • backspace - Go to Delete mode.

Delete mode

  • Esc - Exit delete mode.
  • backspace - Confirm delete.

instances.json file (optional)

The instances.json file is a JSON file that stores the Meilisearch instance URL and the API key. The app uses this file to connect to the Meilisearch instance. You can add multiple instances to the file and switch between them on the fly.

The file should look like this:

[
	{
		"id": "1",
		"name": "Your Meilisearch Instance Name",
		"host": "https://your-Meilisearch-instance.com",
		"primary_key": "your-api-key"
	}
]

Please refer to the sample sample.instances.json file in the root directory. You can rename it to instances.json and add your Meilisearch instance details to it.

Install globally

To run it globally, you can install the app with cargo binstall MeiliFinder. Make sure you have binstall binstall repo installed. Once installed, you can invoke the app just by running MeiliFinder in the terminal. This is a binary crate and not a library, so you shouldn't use it as a dependency.

I might provide some pre-built binaries for Windows/MacOS/Linux in the future, or publish it on Homebrew / Winget.

Credits

License

MIT

Limitations

Currently, the app only handles ASCII or 1 byte UTF-8 character input. If you are typing a non-ASCII character (i.e. "ö", "ß" etc.), the app will ignore the input.

Dependencies

~18–37MB
~670K SLoC