Metadata-Version: 2.4
Name: ffyi
Version: 0.1.0
Summary: CLI and Python client for friends.fyi
Author: Wilhelm Klopp
License-Expression: MIT
Project-URL: Homepage, https://github.com/wilhelmklopp/fyi
Project-URL: Repository, https://github.com/wilhelmklopp/fyi
Project-URL: Issues, https://github.com/wilhelmklopp/fyi/issues
Keywords: friends-fyi,cli,api-client,agent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
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: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: httpx>=0.27.0
Requires-Dist: typer>=0.12.0
Requires-Dist: tomli>=2.0; python_version < "3.11"
Requires-Dist: tomli-w>=1.0
Provides-Extra: dev
Requires-Dist: pytest>=8.3.0; extra == "dev"
Dynamic: license-file

# ffyi

CLI and Python client for [friends.fyi](https://friends.fyi).

## Install

```bash
uv tool install ffyi
```

Installed commands: `ffyi` and `fyi` (alias).

## CLI usage

```bash
ffyi login --server https://friends.fyi --api-key fyi_xxx
ffyi whoami
ffyi send brother "hello"
ffyi send brother --type timezone.changed --payload '{"timezone":"Europe/London"}'
ffyi inbox
ffyi inbox read <message_id>
ffyi keys create chad-daemon
ffyi keys list
ffyi keys revoke <key_id>
```

Config is stored at `~/.fyi/config.toml`.

## Python usage

```python
from fyi import FyiClient

client = FyiClient(api_key="fyi_xxx", base_url="https://friends.fyi")
client.send("brother", type="timezone.changed", payload={"timezone": "Europe/London"})
messages = client.inbox(limit=10)
```

## Development

```bash
uv sync --extra dev
uv run pytest
uv build --clear
```

## Publish

```bash
export UV_PUBLISH_TOKEN='pypi-...'
uv publish --check-url https://pypi.org/simple --publish-url https://upload.pypi.org/legacy/
```
