AI-native holding company OS — autonomous workspaces, self-improving agents, Telegram interface
Project description
MindLens — AI-Native Holding Company OS
🧠 An operating system for autonomous AI workspaces
Natural language interface via Telegram • Self-improving • Multi-workspace
What is MindLens?
MindLens manages autonomous workspaces — each with its own knowledge base, agent swarm, and code repos. You interact via Telegram using natural language.
Think of it as a holding company where AI agents are the employees.
You (Telegram)
│
▼
MindLens Core
│
├── 📚 PhD Workspace
│ ├── Raw → Wiki pipeline (LangGraph)
│ ├── Hypothesis tracking
│ └── Paper processing
│
├── 💼 Business Workspace
│ ├── Market research
│ └── Opportunity analysis
│
└── 🔧 Custom Workspace
├── Your agents
└── Your pipelines
Quick Start
1. Install
# Install from PyPI
pip install mindlens
# Or with uv (recommended)
uv pip install mindlens
2. Configure
# Create your vault
mkdir -p ~/mindlens-vault
# Copy the example config
cp .env.example .env
# Edit with your values
nano .env
You need:
- OpenRouter API key — Get one at https://openrouter.ai/keys
- Telegram bot token — Create via @BotFather
- Your Telegram user ID — Get via @userinfobot
- Vault path — Where your Obsidian vault lives
3. Run
# Start MindLens
mindlens
# Or via uv
uv run mindlens
4. Use
Open Telegram, message your bot:
Hi → Greeting (streams response)
What is the status? → System status
Create workspace Marketing → New workspace
Add a task to PhD → Task management
Show my VS Code sessions → Session overview
Architecture
Dual-location design
Your Obsidian Vault (local/cloud) ~/projects/mindlens/ (git repo)
├── agents/ ├── src/mindlens/
│ └── *.yaml │ ├── core/
├── tasks.yaml │ ├── agents/
├── issues.yaml │ ├── pipelines/
├── docs/adr/ │ └── workspaces/
├── Workspace1/ ├── tests/
│ ├── agents/ ├── pyproject.toml
│ ├── tasks.yaml └── install.sh
│ ├── issues.yaml
│ └── wiki/
└── Workspace2/
└── ...
- Vault = knowledge, config, decisions (your Obsidian)
- Code = Python runtime (this repo)
Key concepts
| Concept | What | Where |
|---|---|---|
| Workspaces | Autonomous organizational units | Vault subfolders |
| Agents | AI workers with specific roles | agents/*.yaml + Python |
| Skills | Reusable knowledge patterns | .mindlens/skills/ |
| Tasks | Scheduled recurring work | tasks.yaml per level |
| Issues | Kanban board for tracking | issues.yaml per level |
| ADRs | Architectural decisions | docs/adr/ |
Scope rules
- Global agents can modify everything
- Workspace agents can only modify their own workspace
- Telegram = global scope (you control everything)
CLI Commands
# Start MindLens
mindlens-cli start
# Create a workspace
mindlens-cli workspace create MyProject
# List issues
mindlens-cli issues list --workspace PhD
# Add a task
mindlens-cli task add --workspace PhD --name "review-papers" --schedule "0 10 * * 1,3,5"
# View status
mindlens-cli status
Telegram Commands
| Command | Description |
|---|---|
/start |
Welcome message |
/help |
Show available actions |
/status |
System status |
/workspace |
Switch workspace context |
| Natural language | Anything — routed to the right agent |
Extending MindLens
Add a new workspace
mindlens-cli workspace create MyProject
Or manually: create a folder in your vault with constitution.md, tasks.yaml, issues.yaml, and an agents/ folder.
Add a new agent
Create agents/my_agent.yaml:
name: my_agent
description: What this agent does
type: knowledge
capabilities:
- analyze
- report
system_prompt: |
You are a specialized agent for...
Add a scheduled task
Edit tasks.yaml:
tasks:
- name: daily_review
schedule: "0 9 * * *"
agent: chief_of_staff
workspace: MyProject
message: "Review what happened yesterday"
enabled: true
notify: summary
Tech Stack
- Python 3.12+ with
uv - LangGraph for agent pipelines
- python-telegram-bot for Telegram
- SQLite for runtime state
- OpenRouter API for LLM access
- Obsidian as knowledge interface
Contributing
- Fork the repo
- Create a feature branch
- Make your changes
- Submit a PR
License
MIT
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mindlens-0.1.0.tar.gz.
File metadata
- Download URL: mindlens-0.1.0.tar.gz
- Upload date:
- Size: 145.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89369cb02765d92ee05a9b28172af8f877c3719a71656dde6c6cdd4c5a6bc110
|
|
| MD5 |
d68287674bee604455a5e5959a796926
|
|
| BLAKE2b-256 |
3c26569f5f5d2a19dd2bb0df2d0971f916ba54c810b68668d4f868d260f4f2e6
|
Provenance
The following attestation bundles were made for mindlens-0.1.0.tar.gz:
Publisher:
workflow.yml on kevin91nl/mindlens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mindlens-0.1.0.tar.gz -
Subject digest:
89369cb02765d92ee05a9b28172af8f877c3719a71656dde6c6cdd4c5a6bc110 - Sigstore transparency entry: 2246190885
- Sigstore integration time:
-
Permalink:
kevin91nl/mindlens@ac8e3dfa0a4948c13df2117c0c49fd1877e4f5f1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevin91nl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@ac8e3dfa0a4948c13df2117c0c49fd1877e4f5f1 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mindlens-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mindlens-0.1.0-py3-none-any.whl
- Upload date:
- Size: 72.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca08dfe69e86bb0bce7fdd9de41bdae264eb68c686c5f0734348502ff0e54c6c
|
|
| MD5 |
4a2b2dde8239206c5065a55468e4c26c
|
|
| BLAKE2b-256 |
8604204abd84c126eece334673d7500d8da47ad4b40896fda8836d9b1bd6212b
|
Provenance
The following attestation bundles were made for mindlens-0.1.0-py3-none-any.whl:
Publisher:
workflow.yml on kevin91nl/mindlens
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mindlens-0.1.0-py3-none-any.whl -
Subject digest:
ca08dfe69e86bb0bce7fdd9de41bdae264eb68c686c5f0734348502ff0e54c6c - Sigstore transparency entry: 2246191117
- Sigstore integration time:
-
Permalink:
kevin91nl/mindlens@ac8e3dfa0a4948c13df2117c0c49fd1877e4f5f1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/kevin91nl
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@ac8e3dfa0a4948c13df2117c0c49fd1877e4f5f1 -
Trigger Event:
push
-
Statement type: