Metadata-Version: 2.4
Name: nekocat
Version: 0.1.3
Summary: A LAN communication platform — chat, files, shell, and more over your local network
Project-URL: Homepage, https://github.com/nekocat/nekocat
Project-URL: Issues, https://github.com/nekocat/nekocat/issues
License: MIT
Keywords: chat,communication,daemon,file-transfer,lan,network
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: System :: Networking
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.0
Requires-Dist: click>=8.1
Requires-Dist: cryptography>=41.0
Requires-Dist: plyer>=2.1
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest>=7.4; extra == 'dev'
Description-Content-Type: text/markdown

# NekoCat 🐱

> A LAN communication platform. Chat, share files, send notifications, open remote shells — all over your local network with a single `pip install`.

```
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XX  /\_/\  XX  nekocat                   XX
XX ( o.o ) XX  a lan communication       XX
XX  >   <  XX  package                   XX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
```

## Quick Start

```bash
pip install nekocat
neko setup
```

That's it. The daemon starts automatically and will restart on every boot.

## Commands

| Command | Description |
|---------|-------------|
| `neko setup` | First-time setup: generate keys, register autostart, start daemon |
| `neko look` | Discover NekoCat devices on your LAN |
| `neko throw file.txt Laptop` | Send a file (or folder) to a device |
| `neko catch` | Wait for incoming transfers |
| `neko chat` | Open LAN broadcast chat |
| `neko meow "Hello!"` | Send a desktop notification |
| `neko shell Laptop` | Open a remote terminal |
| `neko share ~/Projects` | Share a folder read-only |
| `neko pair Laptop` | Pair with a new device |
| `neko open` | Open the received-files directory |
| `neko logs` | View transfer, chat, and error history |
| `neko status` | Show daemon status |
| `neko enable` | Enable autostart on boot |
| `neko disable` | Disable autostart on boot |
| `neko uwu` | ✨ |

## Architecture

```
neko (CLI)  ──IPC─►  nekod (Daemon)  ──LAN─►  peers
   localhost:54320           port:54322
```

The CLI never touches the network directly. Every LAN operation is handled by `nekod`, which runs as a background service.

## Security

- Each installation generates a unique **Node ID** and an **Ed25519 identity key pair**.
- All sessions use **X25519 ephemeral key exchange** so traffic is encrypted with a fresh key each time.
- First-time connections show a **6-digit pairing code** that must match on both devices.
- Once paired, devices are trusted automatically.

## Configuration

| OS | Path |
|----|------|
| Windows | `%APPDATA%\NekoCat\` |
| Linux | `~/.config/nekocat/` |
| macOS | `~/Library/Application Support/NekoCat/` |

Config files:
- `config.json` — general settings
- `trusted_peers.json` — paired devices and their public keys
- `nekocat.db` — SQLite database for peer cache and all logs

## License

MIT
