Metadata-Version: 2.4
Name: fts-tool
Version: 2.0.0
Summary: Peer-to-peer file and directory transfer system
Author-email: Terabase Studios <terabasestudios@gmail.com>
License: MIT License
        
        Copyright (c) 2025 Terabase-Studios
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: Homepage, https://github.com/Terabase-Studios/fts
Project-URL: Repository, https://github.com/Terabase-Studios/fts
Project-URL: Issues, https://github.com/Terabase-Studios/fts/issues
Project-URL: Documentation, https://github.com/Terabase-Studios/fts/wiki
Keywords: file transfer,cli,LAN,fts
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Communications :: File Sharing
Classifier: Topic :: Utilities
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiofiles>=24.1.0
Requires-Dist: cryptography>=45.0.7
Requires-Dist: psutil>=7.0.0
Requires-Dist: tqdm>=4.67.1
Requires-Dist: filelock>=3.19.1
Requires-Dist: textual>=6.2.1
Requires-Dist: prompt_toolkit>=3.0.52
Requires-Dist: click>=8.3.0
Dynamic: license-file

# FTS (File Transfer System)

**FTS** is a lightweight CLI tool and GUI application for fast local-network file transfers and communication. Key features include:

* LAN chat
* Contacts & online users
* Intuitive file transfers with progress display
* Transfer history tracking

FTS is designed for local networks and **should never be used on public networks without permission**.  

Check out the [Documentation](https://github.com/Terabase-Studios/fts/wiki) for installation and usage guides.

---

## FTS Aesthetic

FTS leverages [Textual](https://textual.textualize.io/) for a sleek, intuitive GUI and uses a custom logger for clean CLI output.

![FTS App GUI](https://github.com/Terabase-Studios/fts/blob/main/assets/fts_app_overview.png)  
![FTS CLI receiving a file](https://github.com/Terabase-Studios/fts/blob/main/assets/fts_cli_overview.png)

---

## Requirements

* Python 3.9 or higher
* Network access for LAN transfers

> \[!WARNING]
> Python must be installed and correctly added to your system PATH to run `fts` directly from the terminal.  

---

## Installation

Install FTS globally using pip:

```bash
python -m pip install fts-tool
```

## Basic CLI Usage

### Start a server

Start a server to receive files in `Downloads/fts` with a progress bar:

```bash
fts open Downloads/fts --progress
```

### Send a file

Send a file to a running server (replace `127.0.0.1` with the target IP):

```bash
fts send "C:\Users\You\Desktop\project.zip" 127.0.0.1 --progress
```

> \[!NOTE]
> The server must be running and discoverable on the LAN to receive files.

---

## Basic App Usage

Run the FTS App interface (GUI) without any arguments:

```bash
fts
```

From here you can:

* Chat with other users on the local network
* Send and receive files through an intuitive visual interface
* View online users and manage contacts
* Review past transfers in the history panel

> \[!Note]
> A machine must have the App running to be discoverable by other users on the LAN.

---

## Project State

FTS development is currently paused after the release of version 2.0. The project remains active, and future updates will be released. All issues and pull requests will be addressed promptly.

---

## Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss your proposed modifications.

* Submit PRs against the `main` branch.
* Follow existing code style and conventions.
* Include tests or examples when possible.
* Respect the [Code of Conduct](https://github.com/Terabase-Studios/fts/blob/main/CODE_OF_CONDUCT.md).

---

## Safety and Usage Notes

* **Do not run FTS on public networks** without proper authorization.
* FTS is intended for **LAN environments only**.
* Malicious use of FTS is strictly prohibited.
