Metadata-Version: 2.4
Name: axross
Version: 0.4.1
Summary: A multi-protocol file manager, scripting surface, and MCP server built with PyQt6
Author-email: Marco Lux <mlux@undisclose.de>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/c0decave/axross
Project-URL: Repository, https://github.com/c0decave/axross
Project-URL: Issues, https://github.com/c0decave/axross/issues
Project-URL: Documentation, https://github.com/c0decave/axross#readme
Keywords: file-manager,sftp,smb,webdav,s3,mcp,multi-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: X11 Applications :: Qt
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Communications :: File Sharing
Classifier: Topic :: System :: Filesystems
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: PyQt6>=6.6
Requires-Dist: paramiko>=3.4
Requires-Dist: PySocks>=1.7
Requires-Dist: keyring>=25.0
Provides-Extra: smb
Requires-Dist: smbprotocol>=1.13; extra == "smb"
Provides-Extra: webdav
Requires-Dist: requests>=2.31; extra == "webdav"
Requires-Dist: defusedxml>=0.7; extra == "webdav"
Provides-Extra: s3
Requires-Dist: boto3>=1.28; extra == "s3"
Provides-Extra: azure
Requires-Dist: azure-storage-blob>=12.19; extra == "azure"
Requires-Dist: azure-storage-file-share>=12.15; extra == "azure"
Provides-Extra: onedrive
Requires-Dist: msal>=1.26; extra == "onedrive"
Requires-Dist: requests>=2.31; extra == "onedrive"
Provides-Extra: gdrive
Requires-Dist: google-api-python-client>=2.100; extra == "gdrive"
Requires-Dist: google-auth-oauthlib>=1.1; extra == "gdrive"
Requires-Dist: google-auth-httplib2>=0.2; extra == "gdrive"
Provides-Extra: dropbox
Requires-Dist: dropbox>=12.0; extra == "dropbox"
Provides-Extra: fuse
Requires-Dist: fusepy>=3.0; extra == "fuse"
Provides-Extra: winrm
Requires-Dist: pywinrm>=0.4; extra == "winrm"
Provides-Extra: wmi
Requires-Dist: impacket>=0.11; extra == "wmi"
Provides-Extra: exchange
Requires-Dist: exchangelib>=5.0; extra == "exchange"
Provides-Extra: adb
Requires-Dist: adb-shell>=0.4; extra == "adb"
Provides-Extra: archive
Requires-Dist: py7zr>=0.20; extra == "archive"
Provides-Extra: tftp
Requires-Dist: tftpy>=0.8; extra == "tftp"
Provides-Extra: postgres
Requires-Dist: psycopg[binary]>=3.1; extra == "postgres"
Provides-Extra: redis
Requires-Dist: redis>=5.0; extra == "redis"
Provides-Extra: mongo
Requires-Dist: pymongo>=4.6; extra == "mongo"
Provides-Extra: git
Requires-Dist: dulwich>=0.21; extra == "git"
Provides-Extra: dns
Requires-Dist: dnspython>=2.6; extra == "dns"
Provides-Extra: magic
Requires-Dist: puremagic>=1.20; extra == "magic"
Provides-Extra: encoding
Requires-Dist: chardet>=5.2; extra == "encoding"
Provides-Extra: snmp
Requires-Dist: pysnmp>=6.2; extra == "snmp"
Provides-Extra: ldap
Requires-Dist: ldap3>=2.9; extra == "ldap"
Provides-Extra: mac
Requires-Dist: manuf>=1.1; extra == "mac"
Provides-Extra: whois
Requires-Dist: ipwhois>=1.3; extra == "whois"
Provides-Extra: ntp
Requires-Dist: ntplib>=0.4; extra == "ntp"
Provides-Extra: all
Requires-Dist: smbprotocol>=1.13; extra == "all"
Requires-Dist: defusedxml>=0.7; extra == "all"
Requires-Dist: boto3>=1.28; extra == "all"
Requires-Dist: azure-storage-blob>=12.19; extra == "all"
Requires-Dist: azure-storage-file-share>=12.15; extra == "all"
Requires-Dist: msal>=1.26; extra == "all"
Requires-Dist: requests>=2.31; extra == "all"
Requires-Dist: google-api-python-client>=2.100; extra == "all"
Requires-Dist: google-auth-oauthlib>=1.1; extra == "all"
Requires-Dist: google-auth-httplib2>=0.2; extra == "all"
Requires-Dist: dropbox>=12.0; extra == "all"
Requires-Dist: adb-shell>=0.4; extra == "all"
Requires-Dist: py7zr>=0.20; extra == "all"
Requires-Dist: tftpy>=0.8; extra == "all"
Requires-Dist: psycopg[binary]>=3.1; extra == "all"
Requires-Dist: redis>=5.0; extra == "all"
Requires-Dist: pymongo>=4.6; extra == "all"
Requires-Dist: dulwich>=0.21; extra == "all"
Requires-Dist: dnspython>=2.6; extra == "all"
Requires-Dist: puremagic>=1.20; extra == "all"
Requires-Dist: chardet>=5.2; extra == "all"
Requires-Dist: pysnmp>=6.2; extra == "all"
Requires-Dist: ldap3>=2.9; extra == "all"
Requires-Dist: manuf>=1.1; extra == "all"
Requires-Dist: ipwhois>=1.3; extra == "all"
Requires-Dist: ntplib>=0.4; extra == "all"
Dynamic: license-file

<p align="center">
  <img src="https://raw.githubusercontent.com/c0decave/axross/main/resources/logo/axross-logo-256.png" alt="Axross" width="160"/>
</p>

# Axross

**One UI for 30+ file, cloud, network, legacy, database, scripting,
and MCP workflows.**

Axross is a multi-protocol file manager and security toolkit built
with Python and PyQt6. It gives you a split-pane desktop UI, a
headless MCP server mode for LLM agents, and a public `axross.*`
Python scripting API from the same package.

The project is currently beta: useful, broad, and actively hardened,
but still moving quickly.

## Install

Base install:

```bash
python -m venv .venv
source .venv/bin/activate
pip install axross
axross
```

Install the common light protocol extras:

```bash
pip install "axross[all]"
```

Pick individual extras when you only need selected backends:

```bash
pip install "axross[smb]"       # SMB / CIFS + DFS-N
pip install "axross[s3]"        # S3-compatible storage
pip install "axross[webdav]"    # WebDAV
pip install "axross[gdrive]"    # Google Drive
pip install "axross[dropbox]"   # Dropbox
pip install "axross[postgres]"  # PostgreSQL-as-FS
pip install "axross[redis]"     # Redis-as-FS
pip install "axross[mongo]"     # MongoDB GridFS
pip install "axross[git]"       # Git-as-FS via dulwich
```

Heavy or platform-sensitive extras stay explicit:

```bash
pip install "axross[winrm]"
pip install "axross[wmi]"
pip install "axross[exchange]"
pip install "axross[fuse]"
```

On minimal Debian/Ubuntu containers, install Qt loader libraries before
launching the GUI:

```bash
apt-get update
apt-get install -y --no-install-recommends \
    libglib2.0-0 libgl1 libegl1 libfontconfig1 libxkbcommon0 libdbus-1-3
```

Headless modes (`--help`, `--script`, `--mcp-server`) work without
those GUI libraries.

## First Checks

```bash
axross --help
python -m axross --help
python - <<'PY'
import axross
print(axross.__version__)
print(axross.localfs().list_dir(".")[:3])
PY
```

Launch modes:

```bash
axross                         # desktop GUI
axross --script script.py      # run an axross automation script
axross --mcp-server            # stdio MCP server for local agents
axross --mcp-server --mcp-http 127.0.0.1:7331
```

## What It Can Talk To

Core backends include SFTP/SCP, FTP/FTPS, SMB/CIFS, WebDAV,
S3-compatible storage, Rsync, NFS, Azure Blob/Files, OneDrive,
SharePoint, Google Drive, Dropbox, iSCSI, IMAP, POP3, TFTP,
Telnet, WinRM, WMI/DCOM, Exchange, DFS-N, ADB, MTP, Gopher,
NNTP/Usenet, SQLite-FS, PostgreSQL-FS, Redis-FS, MongoDB GridFS,
Git-as-FS, PJL printer-FS, SLP discovery, rsh/rcp, Cisco IOS
Telnet, and a RAM-only volatile workspace.

## Scripting API

The package exposes the same curated API used by the embedded REPL:

```python
import axross

local = axross.localfs()
for item in local.list_dir(".")[:5]:
    print(item.name, item.size)
```

In the GUI, the bottom Console dock adds persistent history, docs,
slash commands, and bundled scripts such as mirror, dedupe,
find-secrets, port-scan, SLP inventory, Cisco IOS collection,
IMAP archive, checksum diff, and TFTP audit.

## Safety Defaults

Axross is designed for operational work:

- mutating operations can be previewed
- destructive actions write redacted structured logs
- an append-only operation journal records high-risk actions
- plaintext legacy protocols show credential warnings
- SSRF guards protect proxy hops by default
- paranoid mode can disable scripts, previews, external viewers,
  legacy protocols, and private proxy overrides

## Documentation

- Full README: https://github.com/c0decave/axross
- Installation and extras: https://github.com/c0decave/axross/blob/main/INSTALL.md
- User guide: https://github.com/c0decave/axross/blob/main/docs/USAGE.md
- Scripting: https://github.com/c0decave/axross/blob/main/docs/SCRIPTING.md
- MCP server: https://github.com/c0decave/axross/blob/main/docs/MCP.md
- OPSEC notes: https://github.com/c0decave/axross/blob/main/docs/OPSEC.md

## License

Axross is released under the Apache License 2.0. See the source
repository for the full license, notice, and third-party attribution
files.
