Skip to main content

AI based Operating system POC from the future

Project description

FutureOS 🚀

My take on how Operating Systems will be built in the future.

FutureOS Interface

🌟 The Challenge

Currently, there are several powerful AI tools for both Windows and macOS:

However, these tools implement their own methods of indexing and searching files, and they're not integrated with the OS.

💡 The Vision

What if:

  • Every utility in the OS had access to vector search for collections of all files, directories, pictures, and more?
  • All content was automatically indexed by the OS whenever a file is created or modified?
  • Every utility had access to an AI chain (like LangChain) deeply integrated into the OS?
  • Every command could leverage these AI capabilities?

Let's go further... 🚀

Why force users to remember specific commands with their parameters and arguments? By creating descriptive docstrings for commands, we can build a vector store of all commands and automatically choose the best one for user input. Users don't even need to know exact command names!

✅ Quality Assurance

"But without proper testing, users wouldn't like it."

I know! That's why there are multiple tests for every command with output that's easy to parse by LLM.

🏗️ Architecture

Command System

Every command inherits from a base Command class that provides:

def get_file(self, question: str, max_distance: float) -> str:
    """Find relevant files using vector similarity search"""

def get_directory(self, question: str, max_distance: float) -> str:
    """Find relevant directories using vector similarity search"""

def run_chain(self, chain: RunnablePassthrough, input: dict) -> Any:
    """Execute LangChain operations for content processing"""

🔍 How Commands Work

Let's break down how a typical command (cd) is constructed:

class cd(Command):
    """
    NAME
        cd - change the current working directory

    SYNOPSIS
        cd [directory]

    DESCRIPTION
        Change the current working directory to the specified directory.

    NATURAL LANGUAGE COMMANDS
        - Change directory to X
        - Go to folder X
        - Navigate to directory X
    """

The docstring serves multiple purposes:

  1. Vector Embedding Source: Used to create embeddings for command matching
  2. Natural Language Patterns: Defines common ways users might express the command
  3. Documentation: Serves as built-in help text

Command Implementation

def execute(self, args: Any) -> None:
    try:
        # Handle both traditional and natural language input
        directory = self.get_directory(args.query) if args.query else args.directory

        # Resolve and validate path
        target_path = resolve_path(directory)

        # Execute directory change
        if target_path.is_dir():
            constants.CURRENT_DIRECTORY = target_path
            self.print(f"Changed to {target_path}", style="green")
    except Exception as e:
        self.print(f"Error: {str(e)}", style="red")

🚀 Getting Started

# Install
pip install futureos

# Launch
python -m futureos

[!IMPORTANT]
To use FutureOS, ensure you have Ollama installed with the gemma2:2b model. For optimal performance, CUDA should be enabled on your system.

🤝 Contributing

We welcome contributions in:

  • 🧠 AI capability enhancements
  • 🗣️ Natural language understanding
  • 📊 Content analysis improvements
  • ⚙️ New command features

📄 License

MIT License - See LICENSE file for details.

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

futureos-0.2.1.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

futureos-0.2.1-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file futureos-0.2.1.tar.gz.

File metadata

  • Download URL: futureos-0.2.1.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.1

File hashes

Hashes for futureos-0.2.1.tar.gz
Algorithm Hash digest
SHA256 4c155df16a232fce8161f389a85ffdc071a267639b4a3ed6d9c0de205f5729f1
MD5 344eb57ca862a13d45065e175e2575e8
BLAKE2b-256 dd44935f4f31be1f3103f209771ae26e2d9ed1ad38e242b4a83c86cf327111b6

See more details on using hashes here.

File details

Details for the file futureos-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for futureos-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 acd1af3ab3f00ba6fafa05196faf304854376fea7f4534042f6611c18e1e94af
MD5 15a5ec4678bdb62139222900aa56195a
BLAKE2b-256 18e9a99500b28031d0b1111c589960e53fa66ad2750a9f4e614d0005ffcd467c

See more details on using hashes here.

Supported by

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