nexus-fs
Unified filesystem abstraction for cloud storage. Mount S3, GCS, Google Workspace, and local storage with two lines of Python.
import nexus.fs
fs = nexus.fs.mount_sync("s3://my-bucket", "local://./data")
content = fs.read("/s3/my-bucket/README.md")
Install
pip install nexus-fs # core (local only)
pip install nexus-fs[s3] # + Amazon S3
pip install nexus-fs[gcs] # + Google Cloud Storage
pip install nexus-fs[gdrive] # + Google Drive
pip install nexus-fs[fsspec] # + fsspec/pandas/dask integration
pip install nexus-fs[tui] # + interactive TUI playground
pip install nexus-fs[all] # everything
Quick Start
Async
import asyncio
import nexus.fs
async def main():
fs = await nexus.fs.mount("s3://my-bucket", "local://./data")
await fs.write("/local/data/hello.txt", b"Hello!")
content = await fs.read("/local/data/hello.txt")
print(content)
asyncio.run(main())
Sync
import nexus.fs
fs = nexus.fs.mount_sync("local://./data")
fs.write("/local/data/hello.txt", b"Hello!")
print(fs.read("/local/data/hello.txt"))
Connectors (Google Workspace, GitHub, Slack, etc.)
import nexus.fs
fs = nexus.fs.mount_sync("gws://sheets", "gws://docs")
# Uses gws CLI under the hood — no server needed
Prerequisite:
gws://mounts require the gws CLI to be installed and authenticated. Other connectors (GitHub, Slack) require OAuth credentials configured via environment variables — seenexus-fs doctorfor diagnostics.
API
| Method | Description |
|---|---|
read(path) |
Read file content |
write(path, content) |
Write/overwrite file |
ls(path, detail, recursive) |
List directory |
stat(path) |
Get file metadata |
exists(path) |
Check if path exists |
delete(path) |
Delete a file |
rename(old, new) |
Rename/move |
copy(src, dst) |
Copy a file |
mkdir(path) |
Create directory |
list_mounts() |
List mount points |
TUI Playground
pip install nexus-fs[tui]
nexus-fs playground s3://my-bucket local://./data
CLI
nexus-fs mount s3://my-bucket
nexus-fs mount list
nexus-fs mount test s3://my-bucket
nexus-fs unmount s3://my-bucket
Note: The TUI uses direct backend access for low-latency browsing. File operation semantics in the playground may differ from the library API (e.g., metadata fields, error messages). The library API (
mount()/mount_sync()) is the authoritative interface. TUI/library unification is planned for a future release.
State Directory
nexus-fs stores runtime state (metadata DB, mount config) in a platform-specific
directory. This state is a cache — it can be safely deleted and will be
recreated on the next mount() call.
| Platform | Default path |
|---|---|
| Linux | ~/.local/state/nexus-fs/ |
| macOS | ~/Library/Application Support/nexus-fs/ |
| Windows | %LOCALAPPDATA%/nexus-fs/ |
Override with the NEXUS_FS_STATE_DIR environment variable.
Persistent secrets (OAuth tokens, encryption keys) are stored separately
under ~/.nexus/ with restricted permissions (0700).
Override with NEXUS_FS_PERSISTENT_DIR.
Concurrency: nexus-fs is designed for single-process use per state directory. To run multiple independent instances, set a different
NEXUS_FS_STATE_DIRfor each process.
Relationship to nexus-ai-fs
nexus-fs is the slim standalone cloud storage package (~16 dependencies).
nexus-ai-fs is the full Nexus filesystem/context plane (~100+ dependencies)
that includes server, bricks, gRPC, federation, and more.
Both packages install into the nexus Python namespace. Do not install both
in the same environment — they will conflict. Choose one:
pip install nexus-fs— lightweight cloud storage onlypip install nexus-ai-fs— full Nexus system (includes allnexus-fsfunctionality)
License
Apache-2.0
Metadata
Release files for nexus-fs 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| nexus_fs-0.10.0.tar.gz | 2.9 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nexus_fs-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.8 MB
Release files / nexus_fs-0.10.0.tar.gz
| Download URL | nexus_fs-0.10.0.tar.gz |
|---|---|
| Size | 2.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e96846c23281ef40ca600b97894d8a07eac9738fb86d5d3e5365fa47374b9f4
|
|
BLAKE2b-256 checksum How to use checksums |
c5a22c55df315ed95156ab59d9c31dbc32a7b4a6f945c4029997505f3ed48165
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / nexus_fs-0.10.0-py3-none-any.whl
| Download URL | nexus_fs-0.10.0-py3-none-any.whl |
|---|---|
| Size | 975.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb2c1cd586343c3d0e449a785a44f0e37222e6751af7c13498f8c3aafd856745
|
|
BLAKE2b-256 checksum How to use checksums |
8bd17f9d94f433a978a1097e777085d1a4ddc336916832439e97a919bee8d4b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for nexus-fs 0.10.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.