Skip to main content

Postr-TUI

Postr-TUI is a terminal-based blog and forum client built with Python and Textual, and database support for both PostgreSQL and SQLite.

It allows users to connect to a public hosted server, run their own private local server, or connect to a custom server URL. Users can register, log in, create posts, reply to posts, delete their own content, and use a remembered login system.


Features

  • Terminal user interface built with Textual
  • Public, private, and custom server modes
  • User login and registration
  • Remember-me system using local config and system keyring
  • Create, view, edit, and delete posts
  • Author-only post editing and deletion
  • Create and view replies
  • Selectable replies
  • Author-only reply deletion
  • Admin moderation support for deleting inappropriate posts/replies
  • Public hosting support with Railway
  • PostgreSQL support for hosted deployment
  • SQLite fallback for private local hosting
  • Packaged for installation from PyPI as postr-tui

Installation

Install from PyPI:

pip install postr-tui

Server Mode

When Postr-TUI starts, you can choose how to connect.

Public Mode

In thsi mode you connect to a public server where people can post and reply to blogs etc.

Private Mode

In this mode you connect to your own local server if you want to run one yourself, it will connect to:

http://127.0.0.1:5000

as a default.

Custum Mode

Allows you to enter any compatible Postr server URL.

This is useful for self-hosting, testing, or connecting to a server hosted elsewhere.

Running a Private Local Server

git clone https://github.com/Chi-ChunL/Postr.git
cd Postr

Install dependencies:

pip install -r requirements.txt

And then run the server:

python -m server.server

Then now you can run the client at another terminal or another device by doing:

python -m client.main

Database Support

Postr supports two main database modes.

###PostgreSQL if DATABASE_URL is set, Postr uses PostgreSQL

###SQLite If DATABASE_URL is not set, Postr automatically falls back to SQLite.

This is intended for local private hosting.

The local database file is created as:

postr.db

Project Structure

Postr/
├── client/
│   ├── __init__.py
│   ├── main.py
│   ├── features.py
│   ├── login.py
│   ├── serverSelect.py
│   ├── config.py
│   ├── credentials.py
│   └── postr.tcss
├── server/
│   ├── __init__.py
│   ├── server.py
│   ├── db.py
│   └── auth.py
├── .github/
│   └── workflows/
│       └── publish.yml
├── pyproject.toml
├── requirements.txt
├── README.md
└── .gitignore

Main Controls

Key Action
N Create a new post
E Edit selected post, or reply
D Delete selected post
C Show or hide reply composer
Shift + Enter Submit reply
X Delete selected reply
R Reload posts
L Log out / switch account
Esc Back / quit

Login And Registration

Postr includes a login screen with seperate Login and Register tabs.

  • Use the left and right arrow keys to switch between tabs.
  • Press Enter in the username or password field to submit.
  • Use the Remember Me option to save login details locally.
  • Passwords are stored using the system keyring, not directly inside the config file.

Remember Me System

Postr stores non-sensitive settings in a local config file such as:

  • last username
  • last server URL
  • remember-me preference

Passwords are stored seperately and all passwrods are hashed

Current Status

Postr-TUI currently supports:

  • hosted public server mode
  • private local server mode
  • custom server mode
  • posting
  • replies
  • selectable reply deletion
  • author-only edit/delete permissions
  • admin moderation
  • PyPI installation
  • GitHub Actions publishing

Security Notice

This is an App in development and there may be vulnerablility that is unknown to me, if you want to add something, open an issue or PR on my (GitHub)

Metadata

Release files for postr-tui 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for postr-tui 0.1.5
File Size Uploaded Provenance
postr_tui-0.1.5.tar.gz 17.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for postr-tui 0.1.5
File Interpreter ABI Platform
postr_tui-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 35.6 kB

Release files / postr_tui-0.1.5.tar.gz

Download URL postr_tui-0.1.5.tar.gz
Size 17.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8006c9b704a6b89e9f763fb6ef8aae463e0bc1c99c1f8d60e2b6596e85b63e12
BLAKE2b-256 checksum
How to use checksums
6749777782912c2b2c96df8ae4ea1cece3ff33a2cbdd3cf145eb9fbf98a009e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Release files / postr_tui-0.1.5-py3-none-any.whl

Download URL postr_tui-0.1.5-py3-none-any.whl
Size 18.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
030d6735c6a7f423e46541ced00f7da4d18d190b20c85e4efc0e1a8417592735
BLAKE2b-256 checksum
How to use checksums
87495faae45436c990bf0baecf9975dbcd1f574652b55be1efe9f01ac49225f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

Security for postr-tui 0.1.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for postr_tui-0.1.5.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page