Metadata-Version: 2.4
Name: irene-tools
Version: 0.1.0
Summary: Portable, zero-dependency @tool decorator for authoring agent toolkits — runs in Irene, standalone, or under agno.
Author: Irene
License: MIT
Keywords: agent,llm,tools,toolkit
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Intended Audience :: Developers
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# irene-tools

A tiny, **zero-dependency** `@tool` decorator for authoring agent toolkits. A toolkit
authored with `irene-tools` is **portable**: it runs inside Irene, runs standalone
(`python toolkit.py`), and is usable by [agno](https://github.com/agno-agi/agno) and other
frameworks — because it depends on nothing.

```python
from irene_tools import tool

@tool(category="weather")
def get_forecast(city: str) -> str:
    """Get the forecast for a city."""
    return f"Sunny in {city}"
```

## Why

A capability you build should be yours to keep and move. `irene-tools` is the opposite of
lock-in: the decorator only stamps metadata and returns your function unchanged, so the same
`toolkit.py` works everywhere. No SDK to install a runtime, no framework coupling.

## The toolkit convention

```
my_toolkit/
  toolkit.py       # @tool-decorated functions
  manifest.json    # derived: {name, description, tools[...], manifest_version}
```

## API

- `@tool(category="custom", tags=[], description=None, dangerous=False)` — mark a function.
- `get_workspace()` — the dir to read/write files in (host-injected; `cwd` standalone).
- `get_secret(key, default=None)` — the current end-user's per-user secret (host-injected).

MIT licensed.
