/yozuk

Mini assistant bot for programmers

Primary LanguageRustMIT LicenseMIT

yozuk

GitHub license Rust Telegram: YozukBot

Overview

Yozuk is an assistant bot designed for helping programmers with trivial tasks such as UUID generation, hash calculation and timestamp conversion.

Yozuk CLI demo animation

Unlike normal command-line tools, it uses a simple NLP approach to infer the meaning of your requests, so you don't have to remember the exact syntax of commands. This feature also makes Yozuk suitable for chatbots.

Online Demo: πŸ‘‰ https://yozuk.com

Yozuk is:

  • πŸ“¦ Portable: Runs as a single-file executable.
  • 🏝️ Stand-alone: No internet access or external database needed.
  • πŸ“± Cross-platform: Supports Windows / macOS / Linux / Android / iOS / WASM
  • πŸ€– Smart: Automagically construes your requests.
  • πŸ“Ÿ Handy: Provides simple text-based interface accessible from any device.
  • πŸ”’ Privacy-first: Never expose any data from your computer.
  • πŸš€ Fast: Written in Rust, compiles to native code.
  • πŸ› οΈ Customizable: Enabling / disabling specific commands with feature flags.

Getting Started

Online Demo

Note that they are intended for demo purposes. Do not send sensitive data.

Pre-built binaries

Pre-built binaries for x64 Windows, Linux and macOS are available.

Cargo

cargo install zuk

Build from Source

Build Requirements

  • Rust toolchain: 1.58.0 or later
  • CMake: 3.12 or later

Skills

Yozuk manages its commands by modules called skills.

Examples

skill description example queries
calc Simple calculator 1 + 2 (0.1 + 0.2) / 0.3
uuid UUID generator uuid generate 5 UUIDs
nanoid NanoID generator nanoid generate 5 NanoIDs
base64 Base64 encoder/decoder "Hello δΈ–η•Œ" to base64 cXVpY2sgYnJvd24g8J+mig==
punycode Punycode encoder/decoder 😻.example.com xn--hj8h.com
lipsum Dummy text generator lipsum Lorem ipsum 150 words
dice Dice roller 2d6 2d6 * 10 + 1d100
digest Hash generator md5 sha1 sha-256 Keccak-256
time Datetime now Tomorrow 9:15 AM
unit Unit Converter 10MiB 15.5mph

You can enable or disable each skill at build time. Disabling unneeded skills is helpful in reducing build time, startup time, executable size and command misrecognitions.

Config

Some skills have run-time options. You can configure them with a TOML file.

[skills.yozuk-skill-dice]
secure = true

[skills.yozuk-skill-lipsum]
custom_text = "Fortune, good night: smile once more; turn thy wheel!"
zuk -c config.toml roll dice

Credits

Yozuk was inspired by the following projects:

xkcd: tar