Skip to main content

Add your description here

Project description

Project Schwi (シュヴィ)

A small interactive CLI playground built with Prompt Toolkit and Rich.

Features

  • Slash-command interface (e.g., /help, /echo)
  • Rich UI panels and tables
  • Persistent config with schema versioning
  • Package-based version display
  • JSONL session logging per project

Requirements

  • Python 3.12+
  • uv (recommended) or another Python environment manager

Install

Using uv (recommended)

uv sync

Editable install (optional)

uv pip install -e .

Run

Local development

uv run schwi
# or
make dev

Resume a session

schwi resume <session_id>
# or
schwi --resume <session_id>

Execute once

schwi exec "/help"
schwi exec "hello"

Build

uv build
# or
make build

Commands

  • /help - Show command list
  • /exit - Exit the application
  • /quit - Alias for /exit
  • /clear - Clear the screen
  • /time - Show current local time
  • /sysinfo - Show system information
  • /echo <message> - Echo a message
  • /say <message> - Render a chat message panel
  • /commands [--pretty] - Output command metadata as JSON
  • /session - Show current session information
  • /sessions - List sessions for the current project
  • /resume <session_id> - Resume a previous session

Shortcuts

  • Tab (with empty input) - Toggle thinking mode

Configuration

On first run, the app creates a config file at:

~/.config/schwi/config.json

The config uses a schema version for safe upgrades. Example:

{
  "schema_version": 1,
  "last_seen_app_version": "0.1.0"
}

Sessions

Each run creates a JSONL session file scoped to the current project. Sessions are stored under:

~/.config/schwi/sessions/<project_id>/<session_id>.jsonl

Use /session to view the active session ID, /sessions to list sessions for the current project, and /resume <session_id> to continue a past session.

Versioning

The displayed version is resolved from the installed package metadata. If the package metadata is unavailable, the version falls back to 0.0.0.

Lint

uv run ruff check src

Tests

No tests are defined yet.

License

TBD.

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

schwi-0.1.0.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

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

schwi-0.1.0-py3-none-any.whl (25.3 kB view details)

Uploaded Python 3

File details

Details for the file schwi-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for schwi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9a79a9d91bbf487846e5b89f27dd41bc288d42a5a163d825b6272476c30d9c2a
MD5 2fa6b3af077bce935de22b19b0c37a79
BLAKE2b-256 87262a6a0f0aecd362c877da9cacb277286c1dfd8344e5825bb0b9797469c923

See more details on using hashes here.

File details

Details for the file schwi-0.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for schwi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc8edd4e64bccc7caec394079b52670ef6492657f0f06308c6f3fc7bfa124b4e
MD5 dc3f67c9cb33b400cad34feaaf133cbe
BLAKE2b-256 82ef304d4b2c7d8618b10944d6461787391c92371fcf361bc05e70a2b0ac5a09

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