Metadata-Version: 2.4
Name: app-startcli
Version: 1.0.3
Summary: Secure Python app launcher with encrypted config loading and reusable CLI bootstrap
Home-page: https://github.com/minidarkmimi/start_cli_public
Author: minidarkmimi
License: MIT
Project-URL: Source, https://github.com/minidarkmimi/start_cli_public
Project-URL: Issues, https://github.com/minidarkmimi/start_cli_public/issues
Project-URL: Security, https://github.com/minidarkmimi/start_cli_public/security/policy
Project-URL: Documentation, https://github.com/minidarkmimi/start_cli_public#readme
Keywords: app launcher,app bootstrap,app start,secure launcher,secure startup,encrypted env,encrypted dotenv,config encryption,click cli,bootstrap cli
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1.0
Requires-Dist: loguru>=0.7.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: cryptography>=41.0.0
Requires-Dist: colorama>=0.4.6
Requires-Dist: questionary>=2.0.0
Provides-Extra: tui
Requires-Dist: simple_term_menu>=1.6.0; extra == "tui"
Provides-Extra: dev
Requires-Dist: simple_term_menu>=1.6.0; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: isort>=5.12.0; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Requires-Dist: flake8>=6.0.0; extra == "dev"
Requires-Dist: build>=1.2.0; extra == "dev"
Requires-Dist: twine>=5.1.0; extra == "dev"
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# app-startcli

`app-startcli` is a secure Python app launcher toolkit focused on three startup problems that appear in many real projects:

- how to load encrypted configuration safely
- how to standardize startup commands for development and production
- how to bootstrap a reusable CLI instead of rewriting startup boilerplate in every repository

It is especially useful for projects that want a **secure startup flow**, **encrypted env loading**, and a reusable **app bootstrap CLI**.

## Install

```bash
pip install app-startcli
```

## Package name vs import name vs command

- PyPI package name: `app-startcli`
- Python import name: `start_cli`
- Installed command: `start-cli`

```python
from start_cli import EncryptedConfig, ConfigLoader, AppSettings, create_cli
```

## What it provides

- encrypted config storage via `EncryptedConfig`
- smart config loading with `ConfigLoader` and `load_config`
- reusable Click CLI bootstrap via `create_cli`
- environment-aware settings via `AppSettings`
- helper utilities for masking secrets and maintaining `.gitignore`
- optional interactive terminal menu support

## Why this package exists

Many Python projects have startup logic scattered across shell scripts, ad-hoc `.env` loaders, and custom CLI glue.

`app-startcli` pulls those responsibilities into one reusable package so you can:

- keep sensitive defaults out of source control
- enforce `CLI args > process env > config defaults`
- share one startup pattern across multiple apps
- provide a cleaner onboarding experience for developers and operators

## Quick example

```python
from start_cli import EncryptedConfig, create_cli

cfg = EncryptedConfig.create("config.env", password="example-password")
cfg["API_TOKEN"] = "example-token"
cfg.save()


def start_app() -> None:
    print("app started")


cli = create_cli(
    app_name="My Project",
    app_callable=start_app,
    required_envs={"API_TOKEN": "API token"},
)
```

## Links

- Source: https://github.com/minidarkmimi/start_cli_public
- English README: https://github.com/minidarkmimi/start_cli_public/blob/main/README.md
- Chinese README: https://github.com/minidarkmimi/start_cli_public/blob/main/README.zh-CN.md
