Agent-Gear
High-performance filesystem operations for AI agents, powered by Rust.
Features
- Stateful Indexing: In-memory file tree with LRU-cached glob patterns
- Batch I/O: Parallel file read/write with smart threshold optimization
- High-Performance Search: Grep with parallel search and mmap for large files
- Atomic Writes: Safe file modifications with temp-fsync-rename pattern
- Fast Writes: Optional non-atomic mode for 30x faster writes
- Large File Support: Efficient line-based reading for logs and large files
- Async Support: Full async/await API with
AsyncFileSystem - File Watching: Real-time filesystem monitoring with event debouncing
Installation
pip install agent-gear
For development:
git clone https://github.com/anthropics/agent-gear
cd agent-gear
pip install maturin
maturin develop --release
Quick Start
from agent_gear import FileSystem
with FileSystem("/path/to/project") as fs:
fs.wait_ready()
# List and glob
all_files = fs.list("**/*")
py_files = fs.glob("**/*.py")
# Search with grep
results = fs.grep("TODO", "**/*.py")
for r in results:
print(f"{r.file}:{r.line_number}: {r.content}")
# Read files
content = fs.read_file("main.py")
batch = fs.read_batch(py_files[:10])
# Large file: read specific lines
lines = fs.read_lines("app.log", start_line=1000, count=100)
# Write files
fs.write_file("output.txt", content) # Atomic (safe)
fs.write_file_fast("temp.txt", content) # Fast (30x faster)
# Edit in place
fs.edit_replace("config.py", "DEBUG = False", "DEBUG = True")
Async Usage
from agent_gear import AsyncFileSystem
import asyncio
async def main():
async with AsyncFileSystem("/path/to/project") as fs:
await fs.wait_ready()
# All operations are async
files = await fs.list("**/*.py")
results = await fs.grep("TODO", "**/*.py")
# Concurrent operations
results = await asyncio.gather(
fs.list("**/*.py"),
fs.grep("def main"),
fs.read_file("README.md"),
)
asyncio.run(main())
API Reference
FileSystem
class FileSystem:
def __init__(self, root: str, auto_watch: bool = True) -> None: ...
# Listing
def list(self, pattern: str = "**/*", only_files: bool = True) -> list[str]: ...
def glob(self, pattern: str) -> list[str]: ...
# Reading
def read_file(self, path: str, encoding: str = "utf-8") -> str: ...
def read_batch(self, paths: list[str]) -> dict[str, str]: ...
def read_lines(self, path: str, start_line: int = 0, count: int | None = None) -> list[str]: ...
def read_file_range(self, path: str, offset: int, limit: int) -> str: ...
# Writing
def write_file(self, path: str, content: str) -> bool: ... # Atomic
def write_file_fast(self, path: str, content: str) -> bool: ... # Fast
def edit_replace(self, path: str, old_text: str, new_text: str, strict: bool = True) -> bool: ...
# Searching
def grep(self, query: str, glob_pattern: str = "**/*",
case_sensitive: bool = False, max_results: int = 1000) -> list[SearchResult]: ...
# Metadata & Control
def get_metadata(self, path: str) -> FileMetadata: ...
def is_ready(self) -> bool: ...
def is_watching(self) -> bool: ...
def refresh(self) -> None: ...
def close(self) -> None: ...
AsyncFileSystem
Same API as FileSystem, but all I/O methods are async.
Data Classes
class SearchResult:
file: str # Relative file path
line_number: int # Line number (1-indexed)
content: str # Matching line content
class FileMetadata:
size: int # File size in bytes
mtime: float # Modification time (Unix timestamp)
is_dir: bool # Is directory
is_binary: bool # Is binary file
Performance
Benchmark on 3000 files (polyglot project, 20 repeated queries):
| Operation | Agent-Gear | Stdlib | Speedup |
|---|---|---|---|
| List all | 1.75ms | 3.5ms | 2.0x |
| *Glob .py | 1.84ms | 5.1ms | 2.8x |
| *Glob .ts | 2.01ms | 5.0ms | 2.5x |
| Grep TODO | 4.2ms | 7.8ms | 1.9x |
| Write (fast) | 0.14ms | 4.5ms (atomic) | 33x |
| Async (3 ops) | 3.9ms | 8.0ms (seq) | 2.0x |
Overall: 1.9x faster | Index: ~100ms (breaks even in 1 query round)
When to Use Agent-Gear
- Repeated queries: Index pays off after just 1-2 query rounds
- Large codebases: 1000+ files show 1.5-3x speedup
- Glob-heavy workflows: Cached patterns, 2-3x faster
- Grep searches: Parallel + mmap, 2x faster
- Async I/O: Concurrent operations with 2x speedup
Run benchmarks:
python benchmarks/benchmark.py # Single mode, 500 files
python benchmarks/benchmark.py --mode repeated # Repeated queries
python benchmarks/benchmark.py --mode all --files 3000 # Full test
Architecture
agent_gear/
├── _rust_core.so # Rust extension (PyO3)
└── __init__.py # Python wrapper + AsyncFileSystem
src/
├── lib.rs # PyO3 module entry
└── fs/
├── mod.rs # FileSystem pyclass
├── index.rs # DashMap-based file index + LRU glob cache
├── searcher.rs # Parallel grep with mmap
├── io.rs # Batch read/write with threshold optimization
├── atomic.rs # Atomic write (temp-fsync-rename)
└── watcher.rs # File watching with debouncing
Development
Prerequisites
- Python 3.12+
- Rust 1.75+
- maturin
Build & Test
# Development build
maturin develop --release
# Run tests
pytest tests/python -v
cargo test
# Run benchmarks
cargo bench
python benchmarks/benchmark.py
License
MIT
Metadata
Release files for agent-gear 0.1.3
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 | |
|---|---|---|---|---|
| agent_gear-0.1.3.tar.gz | 118.3 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| agent_gear-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | PyPy 3.10 | PyPy 3.10 7.3 | Linux glibc 2.17+ ARM64 | Details |
| agent_gear-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | PyPy 3.9 | PyPy 3.9 7.3 | Linux glibc 2.17+ ARM64 | Details |
| agent_gear-0.1.3-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| agent_gear-0.1.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| agent_gear-0.1.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| agent_gear-0.1.3-cp312-abi3-macosx_11_0_arm64.whl | CPython 3.12 | abi3 | macOS 11.0+ ARM64 | Details |
| agent_gear-0.1.3-cp312-abi3-macosx_10_12_x86_64.whl | CPython 3.12 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 8.1 MB
Release files / agent_gear-0.1.3.tar.gz
| Download URL | agent_gear-0.1.3.tar.gz |
|---|---|
| Size | 118.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84199e1ef0139a511c02487fd57bb2f0be269f93cebdc7200744c964cac6b3eb
|
|
BLAKE2b-256 checksum How to use checksums |
15fc5850c14ac9023e0bc445b2993a9f1e943a3c5ba26e2a4903595818cfad05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | agent_gear-0.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Linux glibc 2.17+ ARM64 PyPy 3.10 PyPy 3.10 7.3 |
|
SHA-256 checksum How to use checksums |
a73f4152246a4d503f3ac2356be157698112c6bb1d702d9af92ed419a19a38e2
|
|
BLAKE2b-256 checksum How to use checksums |
bcf18c8c457924d6edbc57966a92daf1dcb061d8a75c6c29e307d4a7834806f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | agent_gear-0.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Linux glibc 2.17+ ARM64 PyPy 3.9 PyPy 3.9 7.3 |
|
SHA-256 checksum How to use checksums |
1ae01acd324459dabd3f00a6ef3c39936e81f6e13e708a9128dc9f2afe0b2cd3
|
|
BLAKE2b-256 checksum How to use checksums |
88246a10e5dbb73a6c27d6525cddf1709ac6561e4e96ae8c7b371af18c24bb50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-cp312-abi3-win_amd64.whl
| Download URL | agent_gear-0.1.3-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
2f53ea342a1b7074231f3df379f713d7426d745fe5ef80d1abab6dee15a3a02b
|
|
BLAKE2b-256 checksum How to use checksums |
f77b9065dd581ca7a5c00edec5065e0b3185d7fb45c307027cbcfbfbce686ddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | agent_gear-0.1.3-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
8c29a5bedae41a3bd3c58ab8722c844fac567a973b983cf0a6ba1411c68656a9
|
|
BLAKE2b-256 checksum How to use checksums |
e5caef93f3da3c7cff6c1e1c4a0f7f2e9fe7fc40bfa0dfe3fe9074e7fd689a55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | agent_gear-0.1.3-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
29f5b44c7549d92d493ed158329d71f53d220b104707989f4721c15efc6c4abf
|
|
BLAKE2b-256 checksum How to use checksums |
eeba25669113f72f5a781abf4b2b76779169d4b00d800a3415a0318aca83136d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-cp312-abi3-macosx_11_0_arm64.whl
| Download URL | agent_gear-0.1.3-cp312-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | CPython 3.12 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
e889b884a50803b1a3246cb2427bad1ee9dbbe17b8b14ce8d57cc964b400d1e4
|
|
BLAKE2b-256 checksum How to use checksums |
d58f8e33d86e4cd7d61063186ed7457b88b326dd5dd21b84fc8fb89a8ecd149c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logRelease files / agent_gear-0.1.3-cp312-abi3-macosx_10_12_x86_64.whl
| Download URL | agent_gear-0.1.3-cp312-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | CPython 3.12 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
b1d3bb3c546cd1852c9d694cf6cfbc1d49f373b51e36bd97e3a953964c7b3553
|
|
BLAKE2b-256 checksum How to use checksums |
7862fa94a205d6ddaf946a86d3d16b6bc39859808b8b739adc170e09abba6c08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logSecurity for agent-gear 0.1.3
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.
Full provenance
All 8 files in this release have been uploaded with provenance metadata.
Attestation for agent_gear-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 30, 2025.
Transparency logA 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.