Skip to main content

The Experimental AI Microkernel OS

Project description

FyodorOS

███████╗██╗   ██╗ ██████╗ ██████╗  ██████╗ ██████╗
██╔════╝╚██╗ ██╔╝██╔═══██╗██╔══██╗██╔═══██╗██╔══██╗
█████╗   ╚████╔╝ ██║   ██║██║  ██║██║   ██║██████╔╝
██╔══╝    ╚██╔╝  ██║   ██║██║  ██║██║   ██║██╔══██╗
██║        ██║   ╚██████╔╝██████╔╝╚██████╔╝██║  ██║
╚═╝        ╚═╝    ╚═════╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═╝
          The Experimental AI Microkernel

FyodorOS is a simulated operating system designed from the ground up for Autonomous AI Agents. Unlike traditional OSs designed for humans (GUI/CLI) or servers (API), FyodorOS exposes the entire system state as a Document Object Model (DOM), allowing Agents to "perceive" and interact with the kernel natively.

🚀 Vision

We believe that for AI Agents to be truly useful and safe, they need an environment built for them. FyodorOS provides:

  • Structured Observation: The OS state (Filesystem, Processes, Users) is a queryable DOM tree.
  • Cognitive Loop: Built-in ReAct (Reasoning + Acting) loop at the kernel level.
  • Safety Sandbox: A strict, rule-based verification layer that constraints Agent actions before execution.
  • Agent-Native Apps: Standard tools (browser, explorer, calc) that return structured JSON/DOM instead of plain text, minimizing token usage and parsing errors.

✨ Key Features

🧠 Kernel-Level Agent

The OS integrates an LLM-powered agent directly into the shell.

  • Command: agent "Research the latest news on AI"
  • Mechanism: The agent perceives the system via SystemDOM, creates a To-Do list, and executes actions in a sandboxed loop.

🌐 Agent Browser (Playwright Integration)

FyodorOS includes a specialized browser for agents.

  • DOM Tree Output: Returns a simplified, semantic JSON representation of web pages.
  • Interaction: Agents can click and type using element IDs directly.
  • Efficiency: Strips unnecessary noise (CSS/Scripts) to save context window.

🛡️ Safety Sandbox

Every action taken by the Agent is intercepted by the AgentSandbox.

  • System Protection: Prevents writes to /kernel, /bin, and /etc.
  • App Whitelisting: Only authorized "Agent Apps" can be executed.
  • Transparency: All actions are logged and verifiable.

📦 Installation & Usage

  1. Clone the Repository

    git clone https://github.com/your-org/fyodoros.git
    cd fyodoros
    
  2. Install Package You can install FyodorOS as a Python package.

    Via pip (Recommended):

    pip install .
    playwright install chromium
    

    Via Conda:

    conda env create -f environment.yml
    conda activate fyodoros
    playwright install chromium
    
  3. Launch the OS

    Option A: Using the CLI (if installed)

    # 1. Setup (Configure API Keys)
    fyodor setup
    
    # 2. Start
    fyodor start
    

    Option B: Using Convenience Scripts

    • Windows: Double-click run.bat
    • Linux/Mac: Run ./run.sh
  4. Interact Inside the FyodorOS Shell:

    # Run a standard command
    guest@fyodoros:/> ls
    
    # Task the Agent
    guest@fyodoros:/> agent "Create a file named hello.txt in my home folder"
    

💡 Use Cases

1. Web Research & Summary

Scenario: You want the agent to look up information and save it. Command:

agent "Go to https://example.com, read the main heading, and save it to /home/guest/summary.txt"

Agent Process:

  1. Calls run_process("browser", ["navigate", "https://example.com"]).
  2. Parses the returned DOM tree to find the <h1> tag.
  3. Calls write_file("/home/guest/summary.txt", ...) to save the data.

2. System Management

Scenario: You want to add a new user securely. Command:

agent "Create a new user named 'developer' with password 'secure123'"

Agent Process:

  1. Checks if user exists using run_process("user", ["list"]).
  2. Calls run_process("user", ["add", "developer", "secure123"]).
  3. Verifies the addition.

3. File Organization

Scenario: Organize a messy directory. Command:

agent "Move all .txt files from /home/guest to /home/guest/documents"

Agent Process:

  1. Calls list_dir("/home/guest").
  2. Identifies .txt files.
  3. Calls run_process("explorer", ["move", ...]) for each file.

🏗️ Architecture

  • src/fyodoros/kernel/: Core logic including Scheduler, SyscallHandler, and the new Agent Layer (agent.py, dom.py, sandbox.py).
  • src/fyodoros/bin/: User-space applications. These are "Agent-Aware" binaries that output JSON.
  • src/fyodoros/shell/: The interactive CLI wrapper.
  • src/fyodoros/cli.py: The launcher and configuration tool.

🤝 Contributing

FyodorOS is an experimental sandbox. We welcome contributions to:

  • Expand the standard library of Agent Apps.
  • Improve the DOM representation of system state.
  • Implement more complex Sandbox rules.

Built for the future of Autonomous Computing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fyodoros-0.1.0.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fyodoros-0.1.0-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file fyodoros-0.1.0.tar.gz.

File metadata

  • Download URL: fyodoros-0.1.0.tar.gz
  • Upload date:
  • Size: 23.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for fyodoros-0.1.0.tar.gz
Algorithm Hash digest
SHA256 eabb49c467f17d1d1f170c5cc19b1d30ff9fbf69ad52b0da5116da59c83a2372
MD5 5eab420fe7800db10e2cc566c0a1bfe2
BLAKE2b-256 0e86c411deeaf4741e2efb433c1e9e2777c74d18831cef44f739856eb41fc6a0

See more details on using hashes here.

File details

Details for the file fyodoros-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: fyodoros-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.1

File hashes

Hashes for fyodoros-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 541684a1defd7ca912ed73d6ec00ecba721cfbd53228f04cf719a7056bd4fbcd
MD5 bf7ae0ed7096e5bd0241c80aab2e3932
BLAKE2b-256 e8e9a38e0f5d758f76f5ef7c7000de61db4f18c40d0803812d5ff03198c26d42

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page