Metadata-Version: 2.4
Name: cxc
Version: 1.0.0
Summary: CodeX Core, Ai Tools For Terminal.
Home-page: https://github.com/XyrionMD/Cxc
Author: Xyrion
License: MIT
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: textual
Requires-Dist: yt-dlp
Requires-Dist: rapidfuzz
Dynamic: author
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: summary

**CodeX Core CXC**

Hello everyone, my name is Rion. This is my boredom project, which might be useful for you. This tool has several features such as:

**Features**

- Download Music with yt-dlp
- Search Music with yt-dlp
- Video Downloader (DV)
- Local Search
- mpx Music Player X
- AI Chat
- Self Update via pipx

**How to use**

```
cxc help
```

**Commands**

| Command                        | Alias | Description                          |
| ------------------------------ | ----- | ------------------------------------ |
| `cxc search "<title>"`         | `-S`  | Search music information             |
| `cxc search --local "<title>"` |       | Search your downloaded files locally |
| `cxc download "<title>"`       | `-D`  | Search and download music to MP3     |
| `cxc DV -r "<res>" "<URL>"`    |       | Download a video at a chosen quality |
| `cxc mpx`                      |       | Open Music Player X                  |
| `cxc chat`                     |       | Open the AI chat menu                |
| `cxc time`                     | `-t`  | Show time, day, month, and year      |
| `cxc update`                   | `-U`  | Self update via `pipx upgrade cxc`   |
| `cxc version`                  | `-v`  | Show the current version             |
| `cxc help`                     | `h`   | Display the help menu                |

**Configuration**

cxc stores its settings in `~/.config/cxc/config.toml` (TOML format). The file is created automatically on first run — just edit it and restart cxc.

```toml
# CodeX Core (cxc) configuration

# --- AI credentials ---
API = "PASTE_YOUR_API_KEY"
MODEL = "gemini-2.5-flash"
AI_NAME = "Your_Ai_Name"
# AI_PROMPT may reference other keys, e.g. {AI_NAME}
AI_PROMPT = "You Are {AI_NAME}"

# --- Folders (relative to your home directory) ---
MUSIC_DIR = "Music"
VIDEO_DIR = "Videos"
```

| Key         | Description                                                       |
| ----------- | ----------------------------------------------------------------- |
| `API`       | Your Gemini API key (required for `cxc chat`).                    |
| `MODEL`     | The AI model to use, e.g. `gemini-2.5-flash`.                     |
| `AI_NAME`   | The name shown for the AI in chat.                                |
| `AI_PROMPT` | The system prompt. May reference other keys, e.g. `{AI_NAME}`.    |
| `MUSIC_DIR` | Folder for downloaded music, relative to your home directory.     |
| `VIDEO_DIR` | Folder for downloaded videos, relative to your home directory.    |

**Config format & migration**

The configuration format changed from a Python file (`config.py`) to **TOML** (`config.toml`). You don't need to do anything manually:

- If you upgrade from an old version, cxc migrates automatically the first time you run it:
  1. reads your old `config.py`,
  2. writes the new `config.toml`,
  3. keeps a backup of the old file as `config.py.bak`,
  4. removes the old `.lock` file.
- Your API key and all other settings are preserved.
- If you have no old config, a fresh `config.toml` is created for you.
- The file is stored with owner-only permissions (`600`) because it holds your API key.
- cxc now requires **Python 3.11+** (for the built-in `tomllib`).

**Update**

## What's New in v1.0.0 (First Stable Release)

- **Video Downloader (DV)** — download videos with yt-dlp and pick the resolution, e.g. `cxc DV -r "360" "<URL>"`.
- **Self Update** — update cxc straight from the terminal using `pipx upgrade`, e.g. `cxc update`.
- **Local Search** — find your downloaded music/videos on your device with partial-title and typo-tolerant matching, e.g. `cxc search --local "<music title>"`.
- **New config format** — configuration moved from `config.py` to `config.toml`, with automatic migration from the old file. See the [Configuration](#configuration) section.

**Notes**

- Before using the chat feature, please set your configuration first in `~/.config/cxc/config.toml` (see [Configuration](#configuration)).
- The `1.26.x` versions were the **nightly** channel. **v1.0.0 is the first stable release** of CXC, so the versioning restarts from here.

I will update regularly but I can't guarantee it, so see you in the next update.
