PHPackages                             chemaclass/phel-cli-gui - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. chemaclass/phel-cli-gui

ActiveLibrary[CLI &amp; Console](/categories/cli)

chemaclass/phel-cli-gui
=======================

Phel functions to render in the terminal. It uses the Cursor from the Symfony Command module.

0.10.0(1w ago)5224MITPHPPHP &gt;=8.3

Since Oct 21Pushed 3mo ago2 watchersCompare

[ Source](https://github.com/Chemaclass/phel-cli-gui)[ Packagist](https://packagist.org/packages/chemaclass/phel-cli-gui)[ Docs](https://phel-lang.org/)[ RSS](/packages/chemaclass-phel-cli-gui/feed)WikiDiscussions main Synced 6d ago

READMEChangelog (7)Dependencies (10)Versions (13)Used By (0)

Phel Cli Gui
============

[](#phel-cli-gui)

This library provides you with some [Phel](https://phel-lang.org/) functions to render in the terminal. It uses the Cursor from the Symfony Command module.

### Functions

[](#functions)

- `(read-input [length])`: reads the input stream and returns it in different formats; `:raw` and `:hex`.
- `(clear-screen)`: clears the entire screen.
- `(clear-output)`: clears all the output from the cursors' current position to the end of the screen.
- `(clear-line [line])`: clears the output from the line.
- `(render-board [{:width w :height h}])`: renders the borders of a board.
- `(render [x y text & [style]])`: render any text to a concrete position (x,y) in the terminal.
- `(render-text-block [x y text & [style]])`: render multiline strings without managing line offsets manually.
- `(draw-horizontal-line [x y length char & [style]])`: quickly draw separators or rulers.
- `(draw-vertical-line [x y length char & [style]])`: draw vertical guides and columns.
- `(draw-box [{:x x :y y :width w :height h :border {:horizontal h :vertical v :corner c} :fill-char f}])`: draw framed areas with optional fill character.

### Example

[](#example)

This example will read the input from the keyboard and display the char and its hexadecimal value on the terminal. You can run it locally using: `vendor/bin/phel run src/phel/test-keyboard.phel`

Source:

```
(ns phel-cli-gui\test-keyboard
  (:require phel-cli-gui\terminal-gui :refer [read-input render]))

(defn render-input [{:raw raw :hex hex}]
  (if (> (php/strlen hex) 0)
    (println (format "# Raw input: `%s`, hex: `%s`" raw hex))))

(defn main
  "Display the key and its hexadecimal value on the fly"
  []
  (println "Type something...")
  (loop []
    (php/usleep 1000)
    (let [input (read-input 3)]
      (render-input input)
      (recur))))

(main)

```

#### Examples

[](#examples)

You can see some real examples using this library:

-

### Development

[](#development)

- Install dependencies with `composer install`.
- Run the full test-suite with `composer test` (runs both the Phel and PHP checks).

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance88

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~92 days

Recently: every ~53 days

Total

11

Last Release

8d ago

PHP version history (4 changes)0.1.0PHP ^8.0

0.2.0PHP ^8.2

0.3.1PHP &gt;=8.2

0.5.0PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/3d166420c6770c5941e10bd68b2d26501eabb432e280d8e6eba0a344bcc1e5ae?d=identicon)[Chemaclass](/maintainers/Chemaclass)

---

Top Contributors

[![Chemaclass](https://avatars.githubusercontent.com/u/5256287?v=4)](https://github.com/Chemaclass "Chemaclass (73 commits)")

---

Tags

cliphelphpterminallanguagefunctionallispphel

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/chemaclass-phel-cli-gui/health.svg)

```
[![Health](https://phpackages.com/badges/chemaclass-phel-cli-gui/health.svg)](https://phpackages.com/packages/chemaclass-phel-cli-gui)
```

###  Alternatives

[phel-lang/phel-lang

Phel is a functional programming language that compiles to PHP

4743.5k10](/packages/phel-lang-phel-lang)[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[crazywhalecc/static-php-cli

Build single static PHP binary, with PHP project together, with popular extensions included.

1.8k13.9k](/packages/crazywhalecc-static-php-cli)[matthiasnoback/symfony-console-form

Use Symfony forms for Console command input

368264.8k8](/packages/matthiasnoback-symfony-console-form)[shel/neos-terminal

Neos CMS Ui terminal for running Eel expressions and other commands

1441.3k](/packages/shel-neos-terminal)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
