No description
Find a file
George Lemon 4fdd320bec update
Signed-off-by: George Lemon <georgelemon@protonmail.com>
2025-12-11 06:10:37 +02:00
.github update test workflow 2024-10-30 03:00:27 +02:00
examples update 2023-06-29 20:52:12 +03:00
src update 2025-12-11 06:08:37 +02:00
tests update 2023-06-29 20:52:12 +03:00
.gitignore Rewrite Klymene based on Nim's macros 2022-05-10 16:03:44 +03:00
kapsis.nimble update 2025-12-11 06:10:37 +02:00
LICENSE Initial commit 2015-01-17 18:20:31 +02:00
README.md Update README.md 2025-07-02 05:13:29 +03:00

Kapsis — Build delightful & intuitive command line interfaces with Nim language 👑

nimble install kapsis

API reference

Github Actions Github Actions

😍 Key Features

  • Typed arguments and validation (path, string, int, bool, float, seconds and more)
  • Prompters input, dropdown, secret, checkbox, radio
  • Commands and Sub commands
  • Label separators
  • Index Auto alignment
  • Doc comments

Example

  import commands/cli

  commands:
    -- "Source-to-Source"
    src string(-s), path(`timl`), bool(--pretty):
      ## Transpile `timl` code to a specific target source
    
    ast path(`timl`), filename(`output`):
      ## Generate binary AST from a `timl` file

Command handles

Kapsis autolinks CLI commands to their command handles. For example, a command called src autolinks to a command handle srcCommand

import kapsis/[app, cli]

proc srcCommand*(v: Values) =
  displayInfo("Hello")

proc astCommand*(v: Values) =
  discard

-h, --help, -v and --version are reserved flags.

Database

todo

Plugins

todo let others add more commands to your kapsis app via shared libraries.

TODO

  • Fancy Gradientful preloaders
  • Fullscreen Session & Keyboard Events
  • Auto-generate Bash/Zsh completion scripts
  • Pluggable Commands via Shared Libraries
  • Built-in database using either JSON or SQLite

❤ Contributions & Support

🎩 License

MIT license. Made by Humans from OpenPeeps.
Copyright © 2024 OpenPeeps & Contributors — All rights reserved.