Skip to main content

Render any input as a portico – a three-layer ASCII visualization.

Project description

portico

Render any input as a portico: a three-layered abstraction.

Stars Last Commit License


Install

uv tool install portico-cli

Try it

portico README.md
portico https://example.com/article
portico ./src --no-legend
echo "your text here" | portico -

What is a portico

An LLM reads your input, decides what kind of thing it is, and decomposes it into three layers. The renderer turns those layers into a fixed ASCII shape that resembles a portico.

Glyph Layer Meaning
^ Roof The unifying idea
ii Pillars The load-bearing components (2-9 of them)
_ Base The foundation everything rests on

Example

echo "What makes Rocky (1976) endure is not what it shows you but what it means. A nobody from the neighborhood discovers that he is capable of love, that he is brave enough to step into a fight he can't win, and that his self-worth is something he can earn through effort rather than receive from victory. The film is the story of a man who refuses to be invisible -- and earns, by the end, the right to be seen." | portico -
── essay: Rocky Endures ────────────────────────────────────────────────────────────────────────────

                                                ***
                                            ===  ◇  ===
                             ╔════════════════════════════════════════╗
                             ║           Meaning Over Image           ║
                             ╚════════════════════════════════════════╝
                          ////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\\\
                           ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
                                ▀██▀            ▀██▀            ▀██▀
                                 ██              ██              ██
                                 ██              ██              ██
                            Capacity for     Unwinnable     Earned Self-
                                Love           Fight           Worth
                                 ██              ██              ██
                                 ██              ██              ██
                                ▄██▄            ▄██▄            ▄██▄
                           ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        ╔══════════════════════════════════════════════════╗
                        ║              Refusing Invisibility               ║
                        ╚══════════════════════════════════════════════════╝

legend:
  ^  Meaning Over Image: Rocky endures because of what it means, not what it literally shows the audience.
  ii Capacity for Love: Rocky discovers he is capable of love, giving him a reason beyond himself.
  ii Unwinnable Fight: He is brave enough to step into a fight he cannot win, which is its own form of victory.
  ii Earned Self-Worth: He learns his self-worth is something he can earn through effort rather than receive from the outcome.
  _  Refusing Invisibility: Everything rests on Rocky's core refusal to remain invisible and his drive to earn the right to be seen.

───────────────────────────────────────────────────────────────────────────────── built with _ii^ ──

Inputs

  • Raw text or stdin
  • Local files and directories
  • URLs (page content is extracted)
  • Git repositories

When an input doesn't fit a three-layer shape – poems, flat lists, gibberish – portico refuses honestly rather than fake one.

Customization

Flag What it does
--no-legend Hide the per-layer summary (legend renders by default)
--color {auto,always,never} Colorize roof / pillars / base. default: never
--reapex[=N] Roll a random apex ornament; pin seed N to reproduce
--json Emit the analyzer's JSON instead of rendering
--diagnose Print a pipeline report (input type, model, fit quality) and exit

Run portico --help for the full list.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

portico_cli-0.1.3.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

portico_cli-0.1.3-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file portico_cli-0.1.3.tar.gz.

File metadata

  • Download URL: portico_cli-0.1.3.tar.gz
  • Upload date:
  • Size: 23.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for portico_cli-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ccf9f90906f1cd209e31877519448620ad7951d5b60e471deeb21c7a7215baa5
MD5 2d7f72582fc4fc165169470b58dfde1a
BLAKE2b-256 722c9b7a775002812a1b5e79d2c4f5191d2c280a36ad03b279be8ebe7f8413c3

See more details on using hashes here.

File details

Details for the file portico_cli-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: portico_cli-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for portico_cli-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5a14ea5c27784ce5b4a2ca78edd1651fa8f683f63e9403a746f4394cb9214210
MD5 4816d50fac969d574dcdd68f279410f8
BLAKE2b-256 3a1528ccc482ecd446719aa7de3375036bfa60f08087f6dc6b97950e8a04f5be

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page