Metadata-Version: 2.4
Name: quasseltui
Version: 0.0.0
Summary: Terminal client for Quassel IRC cores
Project-URL: Homepage, https://github.com/linsomniac/quasseltui
Project-URL: Repository, https://github.com/linsomniac/quasseltui
Project-URL: Issues, https://github.com/linsomniac/quasseltui/issues
Project-URL: Changelog, https://github.com/linsomniac/quasseltui/releases
Author-email: Sean Reifschneider <jafo00@gmail.com>
License-Expression: CC0-1.0
License-File: LICENSE
Keywords: chat,irc,quassel,terminal,textual,tui
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Environment :: Console :: Curses
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Communications :: Chat :: Internet Relay Chat
Classifier: Topic :: Terminals
Requires-Python: >=3.11
Requires-Dist: textual>=0.60
Description-Content-Type: text/markdown

# quasseltui

Terminal client for [Quassel IRC](https://www.quassel-irc.org/) cores. Connects
to your existing `quasselcore` and gives you a Textual-based TUI as an
alternative to `quasselclient` (the Qt GUI) or Quasseldroid.

![quasseltui in action](docs/screenshot.png)

**Status: under construction.** See `/home/sean/.claude/plans/prancy-plotting-lovelace.md`
for the build plan.

## Quick start

```sh
uv sync
uv run python -m quasseltui --help
```

## Config file

Connection settings can be loaded from `~/.config/quasseltui/config.ini`
(or `$XDG_CONFIG_HOME/quasseltui/config.ini`) so that `--host`, `--port`,
`--user`, etc. don't have to be repeated on every invocation.

Example:

```ini
[quasseltui]
default_server = home

[server:home]
host = irc.example.com
port = 4242
user = sean
password = hunter2
# tls = true              (default; set to false for plain TCP)
# insecure = false        (skip cert verification; self-signed cores)
# cafile = /path/to/ca.pem
# connect_timeout = 10

[server:work]
host = irc.work.example
port = 4242
user = sreifschneider
```

Because the file stores the password, make sure it's readable only by
you:

```sh
chmod 600 ~/.config/quasseltui/config.ini
```

With a config in place, three shortcuts become available:

- `quasseltui` — connects to `default_server`.
- `quasseltui <NAME>` — connects to `[server:<NAME>]`.
- `quasseltui ui --server <NAME>` — same as above, explicit form, and
  also works with `login-only` / `stream-only` / `dump-state` / `probe-only`.

Any command-line flag still overrides the corresponding config value.

## Development

```sh
uv run pytest          # unit tests
uv run ruff check      # lint
uv run ruff format     # format
uv run mypy src        # type-check
uv run lint-imports    # enforce layer boundaries
```
