No project description provided
Project description
FlyMy.AI - the Agentic Cloud.
ᕦ[▀̿_▀̿]ᕤ ⚡ ◢▆[◉◡◉]▆◣ ⚡ o=[•_•]=o ⚡ ╾━[⊙▂⊙]━╼ ⚡ ¬[°□°]¬ ⚡ 凸[¬_¬]凸 ⚡ <|¤_¤|> ⚡ ʕ[•ᴥ•]ʔ ⚡ ╚[ʘᗜʘ]╝ ⚡ d[-_-]b ⚡ q[◔౪◔]p ⚡ \[T_T]/ ⚡ ✧[◕‿◕]✧ ⚡ =^.^=
FlyMy.AI is the Agentic Cloud - Agents. Models. Serverless.
Ship autonomous AI workers that plan, call tools (MCP), and deliver results - not just chat. Access any model through a unified API, or deploy your own custom models on serverless GPUs. One platform, pay per use, production-ready in minutes.
- Agents: build autonomous workers that plan, execute tools, and return structured results - then freeze a good run into a reusable, deterministic instruction you call as an API.
- Models: run any model through one unified API (image, video, audio, LLMs) in sync or async mode.
- Serverless: deploy your own custom models on autoscaling GPUs.
- MCP tools: plug in any MCP - web search, browsers, files, external APIs.
Agents tie everything together; Models and Serverless also work standalone - pick what you need and plug the rest in later.
Website
For more information, visit FlyMy.AI, read the docs, or join us on Discord.
Getting Started
This is the Python client for FlyMy.AI. Build and run agents, call any model, and drive serverless endpoints from Python - in sync or async mode.
Requirements
- Python 3.8+
Installation
Install the FlyMyAI client using pip:
pip install flymyai
Authentication
Before using the client, you need to have your API key, username, and project name. In order to get credentials, you have to sign up on flymy.ai and get your personal data on the profile.
📚 Core documentation: docs.flymy.ai — full guides for agents, inference, and MCP tools.
Agents
Autonomous agents plan, call tools (MCP), and return structured results. Declare an input_schema to make an agent reusable with runtime {{ variables }}, then freeze a good run into a Markdown instruction you can re-run as an API.
import asyncio
from flymyai import AsyncAgentClient
async def main():
async with AsyncAgentClient(api_key="fly-secret-key") as client:
# 1. Attach a tool (browse the full catalog with client.tools.available())
tool = await client.tools.create(mcp_tool="tavily")
# 2. Create a reusable agent. {{ variables }} require an input_schema.
agent = await client.agents.create(
name="News Brief",
goal="Find the biggest news about {{ topic }} on {{ date }}. Return a one-line headline.",
tools=[tool.id],
input_schema={
"type": "object",
"properties": {"topic": {"type": "string"}, "date": {"type": "string"}},
"required": ["topic", "date"],
},
)
# 3. Run with variables; stream progress; get the structured result
run = await client.runs.create(
agent_id=agent.id, variables={"topic": "Tesla", "date": "2026-05-21"}
)
async for event in client.runs.stream_events(run.id):
print(f"[{event.type}] {event.message}")
result = await client.runs.wait(run.id)
print(result.output)
# 4. Chat: append a follow-up message and continue the same run
await client.runs.append_message(run.id, text="Make it punchier.")
await client.runs.wait(run.id)
# 5. Freeze into a reusable instruction, re-run with fresh variables — your API
compilation = await client.agents.compile_from_run(run.id)
later = await client.compilations.run_instruction_and_wait(
compilation.id, variables={"topic": "Bitcoin", "date": "2026-05-19"}
)
print(later.output)
asyncio.run(main())
Other agent methods: client.tools.available() / provide_config() / call(), client.runs.get() / list() / cancel(), client.agents.update() / suggest_schema(), client.compilations.update() (edit a frozen instruction). A synchronous AgentClient with the same method names (no await) is also available. Full reference: docs.flymy.ai/agents.
Neural Network Inference
Run any model on the platform with flymyai.async_run (async) or flymyai.run (sync).
Image generation — Nano Banana 🍌
import asyncio
import base64
import flymyai
async def main():
response = await flymyai.async_run(
apikey="fly-secret-key",
model="flymyai/nano-banana",
payload={"prompt": "a cute cat astronaut floating in a neon nebula, studio lighting"},
)
with open("nano_banana.jpg", "wb") as f:
f.write(base64.b64decode(response.output_data["image"][0]))
asyncio.run(main())
Video generation — Veo 3.1 Fast
import asyncio
import flymyai
async def main():
response = await flymyai.async_run(
apikey="fly-secret-key",
model="flymyai/veo31-fast-generate",
payload={"prompt": "a red sports car driving along a coastal road at sunset, cinematic"},
)
print(response.output_data["video"][0]) # public URL to the generated .mp4
asyncio.run(main())
Parallel generation
Fire many requests concurrently with asyncio.gather:
import asyncio
import base64
import flymyai
PROMPTS = ["a neon city at night", "a serene mountain lake at dawn", "a retro robot barista"]
async def main():
results = await asyncio.gather(*[
flymyai.async_run(
apikey="fly-secret-key",
model="flymyai/nano-banana",
payload={"prompt": p},
)
for p in PROMPTS
])
for i, r in enumerate(results):
with open(f"img_{i}.jpg", "wb") as f:
f.write(base64.b64decode(r.output_data["image"][0]))
asyncio.run(main())
Advanced agent helpers
Draft an input_schema from a prompt
import asyncio
from flymyai import AsyncAgentClient
async def main():
async with AsyncAgentClient(api_key="fly-secret-key") as client:
suggestion = await client.agents.suggest_schema(
user_prompt="Summarize {{ url }} in {{ n_sentences }} sentences.",
generate_descriptions=True,
)
print(suggestion.input_schema)
print(suggestion.input_description)
asyncio.run(main())
Handle invalid variables
When variables don't match the agent's input_schema, the server returns HTTP 400 and the client raises VariablesValidationError:
from flymyai import VariablesValidationError
try:
await client.agents.run(agent.id, variables={})
except VariablesValidationError as err:
print(err.messages) # ["'url' is a required property", ...]
print(err.field_errors) # {"url": "'url' is a required property"}
Draft schemas from a finished run
# Infer schemas from a completed run's chat + tool trace
# (also persists them onto the source agent).
suggestion = await client.runs.suggest_schema(
run.id,
inputs_prompt="A URL and a sentence count",
outputs_prompt="A short summary",
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flymyai-1.1.0.tar.gz.
File metadata
- Download URL: flymyai-1.1.0.tar.gz
- Upload date:
- Size: 33.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.13 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8912db6115cfbaf78742644e3dd519afef7feb2df890df8d66d6d4dcdb949ebd
|
|
| MD5 |
8936eec5316660ef62f9d93775f148b4
|
|
| BLAKE2b-256 |
7fc5a6db3aa580c282feca9ca08bee2715371c05c0f3f3c8dc7db0a0e1464797
|
File details
Details for the file flymyai-1.1.0-py3-none-any.whl.
File metadata
- Download URL: flymyai-1.1.0-py3-none-any.whl
- Upload date:
- Size: 48.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.13 Linux/6.17.0-1013-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f3973ba05e9117b67be431386ad7b3cd2f57043889d464c2c3645504d775f2
|
|
| MD5 |
4ab5050e4ff9b0fb59f192dcb01f68c2
|
|
| BLAKE2b-256 |
ee442a05cd05d7b3eb29e26106d868e95c4246e338d83f379460a722effce824
|