https://github.com/miskibin/futureos
AI powered Operating system
https://github.com/miskibin/futureos
Last synced: 28 days ago
JSON representation
AI powered Operating system
- Host: GitHub
- URL: https://github.com/miskibin/futureos
- Owner: miskibin
- Created: 2024-11-11T20:05:24.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-11-15T12:13:44.000Z (6 months ago)
- Last Synced: 2025-03-29T23:51:08.556Z (about 2 months ago)
- Language: Python
- Size: 494 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README


# FutureOS 🚀
My take on how Operating Systems will be built in the future.
## 🚀 Getting Started
```bash
# 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.## 🌟 The Challenge
Currently, there are several powerful AI tools for both Windows and macOS:
- 🤖 [Claude computer use](https://www.anthropic.com/news/3-5-models-and-computer-use)
- 👨💻 [GitHub Copilot](https://copilot.github.com)
- 🗣️ New Siri on MacHowever, 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](/tests/test_create_collections.py) 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:
```python
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:
```python
class cd(Command):
"""
NAME
cd - change the current working directorySYNOPSIS
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
```python
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")
```## 🤝 Contributing
All contributors are welcome!
## 📄 License
MIT License - See [LICENSE](LICENSE) file for details.