a13n
Build AI agents and run them on cloud.
A universal bootstrapping agent that writes itself and heals itself as it runs, built on just a minimal human-designed core of about 200 lines of Python. Fully open source.
Developer toolsPython · JavaScriptGitHub @FibonaAIOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Fibona Agent is a minimal, general-purpose, self-improving agent that writes its own code as it runs.
Taken from the repository README
Loading the full README.
Read the full README ↗Fibona Agent is a minimal, general-purpose, self-improving agent that writes its own code as it runs.
It starts with only a tiny, general-purpose core, which we define as its "self." From this core, it can build its entire system step by step, becoming whatever it needs to be to get the task done. When something goes wrong, it can repair itself and return to a working state autonomously.
Project Page · Video Intro · Tech Report · Online Demo
Try the online demo in your browser.
iOS source and build instructions
Fibona Agent in Chrome: extension source and installation
Requires Python 3.12+ and uv.
Create a .env file in the project root:
FIBONA_API_KEY=your-api-key
FIBONA_BASE_URL=https://api.openai.com/v1
FIBONA_MODEL=gpt-6-astra
Set FIBONA_MODEL to your model ID; it defaults to gpt-6-astra.
Set FIBONA_BASE_URL to use an OpenAI-compatible gateway.
call_me uses the OpenAI Responses API in stateless mode:
it sends the full context each round with store=False. To continue across calls, include the earlier
input and returned r.output in the next input; previous_response_id is not supported.
To receive encrypted reasoning for replay, pass include=["reasoning.encrypted_content"].
The complete official Responses API reference is available offline in the REPL as
openai_responses_api_docs (page name → Markdown), including methods/create, streaming-events,
and websocket-events. The reference also documents stateful features that call_me does not support.
Choose a startup mode and run it from the project root:
Start the terminal UI from the project root:
uv run --env-file .env fibona.py --boot-mode terminal
See the terminal bootstrap README for its design and controls.
Or start in the minimal mode and let the agent build its own chat TUI:
uv run --env-file .env fibona.py --boot-mode minimal \
"Build and launch a premium chat TUI in this terminal.
I want to use it to chat with you.
The TUI should feature refined dark colors, generous spacing, elegant rendering,
clear activity status, and multiline input. Press Enter to send messages.
Keep me updated as you build it."
Omit the task to enter it interactively.
To define your own startup behavior, write your bootstrap cell in ./your_custom_bootstrap.py, then run:
uv run --env-file .env fibona.py --boot-mode ./your_custom_bootstrap.py
Use --reasoning-effort high to set the default for call_me, and
--lowest-reasoning-effort medium to set its minimum. Both default to medium and accept
none, minimal, low, medium, high, xhigh, or max. Requests below the minimum
are raised to it, including the default. The selected model must support the chosen effort.
Each run automatically records cells and every model request, response, or error (including intermediate tool calls) in logs/<timestamp>-<run-id>.jsonl.
From another uv project, add a local checkout:
uv add /path/to/fibona-agent
Core executes the Python source supplied to Agent.run as the bootstrap cell in a persistent session.
Cells share variables and call call_me when they need the model to choose the next cell.
Configure the client, model, working directory and input/output in your application:
import os
import sys
from openai import OpenAI
from core.agent import Agent, Mind, INSTRUCTIONS
from core.env import IPythonEnv
bootstrap_cell = """
task = input("Your task: ")
call_me(input=task)
"""
with OpenAI(
api_key=os.environ["FIBONA_API_KEY"],
base_url=os.getenv("FIBONA_BASE_URL", "https://api.openai.com/v1"),
) as client:
mind = Mind(client=client, model=os.getenv("FIBONA_MODEL", "gpt-6-astra"), instructions=INSTRUCTIONS)
env = IPythonEnv(stdout=sys.stdout, stderr=sys.stderr, read_input=input)
Agent(mind, cwd=".").run(bootstrap_cell, env=env)
Enable Ruff checks before each commit:
uv run pre-commit install
The hooks run Ruff lint and format checks on staged files. Errors block the commit.
To check all tracked files manually:
uv run pre-commit run --all-files
If you use Fibona Agent in your research, please cite it as follows:
@misc{fibonaagent2026,
title = {{Fibona Agent: Self-Improving Agent Writing Itself From Scratch}},
author = {{FibonaAI Team}},
year = {2026},
howpublished = {GitHub repository},
url = {https://github.com/FibonaAI/fibona-agent}
}
This project is licensed under the MIT License.