AI based Operating system POC from the future
Project description
FutureOS 🚀
My take on how Operating Systems will be built in the future.
🌟 The Challenge
Currently, there are several powerful AI tools for both Windows and macOS:
- 🤖 Claude computer use
- 👨💻 GitHub Copilot
- 🗣️ New Siri on Mac
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 allfiles
,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:
- Vector Embedding Source: Used to create embeddings for command matching
- Natural Language Patterns: Defines common ways users might express the command
- 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 thegemma2: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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4c155df16a232fce8161f389a85ffdc071a267639b4a3ed6d9c0de205f5729f1 |
|
MD5 | 344eb57ca862a13d45065e175e2575e8 |
|
BLAKE2b-256 | dd44935f4f31be1f3103f209771ae26e2d9ed1ad38e242b4a83c86cf327111b6 |
File details
Details for the file futureos-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: futureos-0.2.1-py3-none-any.whl
- Upload date:
- Size: 22.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | acd1af3ab3f00ba6fafa05196faf304854376fea7f4534042f6611c18e1e94af |
|
MD5 | 15a5ec4678bdb62139222900aa56195a |
|
BLAKE2b-256 | 18e9a99500b28031d0b1111c589960e53fa66ad2750a9f4e614d0005ffcd467c |