Personal AI runtime, intelligence dashboard, and automation layer.
PAOS Runtime is a lightweight runtime layer for building a personal AI operating workflow. It runs collectors, creates intelligence artifacts, powers a Telegram dashboard, and exposes a practical daily intelligence pipeline for local or self-hosted use.
The stable user-facing path today is the Telegram bot plus the intelligence pipeline.
install.sh creates venv/, installs dependencies, creates required runtime directories, and creates .env from .env.example only when .env is missing.
git clone https://github.com/yogayulanda/paos-runtime.git
cd paos-runtime
bash install.sh
# edit .env if you want Telegram or AI generation
bash doctor.sh
venv/bin/python runtime/intelligence/jobs/run_daily_intelligence.py --category aiPAOS Runtime is actively evolving.
- Telegram dashboard, RSS source, Threads source, Candidate Pool, Signal Builder, Digest, and Insight pipeline are working.
/updateruns the daily intelligence pipeline and sends the final dashboard./statusreads the latest digest and insight status and warns if insight is stale compared to digest.- GitHub, LinkedIn, Jobs, and keyword discovery are planned or inactive unless configured and implemented.
personal-contextis not automatically read by the current intelligence pipeline.- Mnemosyne and MCP integration are roadmap/future integration, not required for current runtime usage.
- Linux, macOS, or a VPS-friendly environment
- Python 3.11+ or Python 3.12 recommended
- Telegram bot token only for Telegram usage
- OpenAI-compatible endpoint only for AI generation mode
tmuxoptional for VPS operation
PAOS is a personal runtime, a daily intelligence pipeline, a Telegram control surface, and a source-driven intelligence system that produces digest and insight artifacts.
It is designed to stay separate from personal-context and from future Mnemosyne working-memory integration.
- Not a general-purpose agent OS
- Not a hosted SaaS
- Not a replacement for Claude Code or Codex
- Not a memory database by itself
- Not a fully autonomous agent system yet
- Not a Docker-first runtime
- Not a complete Mnemosyne/MCP implementation yet
PAOS Runtime
├── Telegram Bot
├── Intelligence Jobs
├── RSS Collector
├── Threads Collector
├── Candidate Pool
├── Signal Builder
├── Digest Builder
├── Insight Engine
└── Runtime Status
paos-runtime executes jobs, runs collectors, and produces artifacts.
The current runtime can run without personal-context. Future Mnemosyne/MCP work is separate and not required for current usage.
- Telegram Dashboard: concise dashboard surface with inline buttons for section details.
- Intelligence Pipeline: runs RSS, Candidate Pool, Signal Builder, Digest, and Insight jobs in sequence.
- Source Collectors: RSS and Threads are active.
- Candidate Pool: normalizes and deduplicates source items before signal extraction.
- Signal Builder: turns candidates into higher-level intelligence signals.
- Digest Builder: renders daily digest artifacts.
- Insight Engine: produces the PAOS Daily Intelligence dashboard artifact.
- Runtime Status: status snapshots are written under
.runtime/runs/. - Artifact Storage: generated markdown and JSONL artifacts live under top-level
intelligence/. - AI Fallback Handling: AI timeouts should not fail the whole pipeline if fallback synthesis can still generate
ai.md. - Contracts and Prompts: dashboard, insight, and content style contracts are externalized in
runtime/intelligence/contracts/andruntime/intelligence/prompts/.
/helpshows available commands./statusshows the latest pipeline status and warns when insight is stale relative to digest./insightshows the latest PAOS Daily Intelligence dashboard./updateruns the daily intelligence pipeline and sends progress plus the final dashboard.
Auxiliary commands exist for compatibility and operational checks, but the README keeps the core surface focused on the intelligence workflow.
The Telegram dashboard is concise. /update does not spam raw digest content, and Telegram does not display JSONL artifacts directly. Section details open through inline buttons.
RSS / Threads
→ Candidate Pool
→ Signal Builder
→ Digest
→ Insight
→ Telegram Dashboard
The runtime writes generated artifacts to:
intelligence/raw/intelligence/candidates/intelligence/signals/intelligence/digests/intelligence/insights/.runtime/runs/
run_daily_intelligence.py invokes run_insights.py so canonical insight status stays fresh in .runtime/runs/insights/latest.json.
The Telegram dashboard consumes intelligence/insights/YYYY-MM-DD/ai.md.
git clone https://github.com/yogayulanda/paos-runtime.git
cd paos-runtime
bash install.shThen edit .env if you want to use Telegram, AI generation, Threads authentication, or a custom runtime/context path.
bash doctor.shdoctor.sh reports missing optional configuration as warnings, not hard failures. Missing Telegram or AI configuration does not block local setup.
The main runtime configuration lives in:
runtime/intelligence/config.yamlruntime/intelligence/sources/rss.yamlruntime/intelligence/sources/threads.yaml
Current runtime environment variables:
PAOS_RUNTIME_PATHPAOS_CONTEXT_PATHTELEGRAM_BOT_TOKENTELEGRAM_CHAT_IDLLM_BASE_URLLLM_API_KEYLLM_MODELPAOS_INSIGHT_AI_CONNECT_TIMEOUT_SECONDSPAOS_INSIGHT_AI_READ_TIMEOUT_SECONDS
Optional AI override variables used by parts of the intelligence layer:
PAOS_AI_PROVIDERPAOS_AI_BASE_URLPAOS_AI_API_KEYPAOS_AI_MODEL
Optional Threads-related variables:
THREADS_ACCESS_TOKENTHREADS_EXPECTED_USERNAME
The AI endpoint must be OpenAI-compatible. The current primary runtime path reads the LLM_* variables, and the endpoint can point to a local OpenAI-compatible server such as http://localhost:20128/v1.
If no working AI endpoint is configured, supported jobs may use fallback behavior where available, but AI-generated signal and insight quality will be lower.
PAOS_CONTEXT_PATH is reserved for future context integration direction. The current intelligence pipeline does not automatically read personal-context yet.
# Full daily intelligence run
venv/bin/python runtime/intelligence/jobs/run_daily_intelligence.py --category ai
# Run RSS collector
venv/bin/python runtime/intelligence/jobs/run_rss_collector.py --category ai
# Run Threads account collector
venv/bin/python runtime/intelligence/jobs/run_threads_account.py --category ai --timeout-seconds 120
# Run candidate pool
venv/bin/python runtime/intelligence/jobs/run_candidate_pool.py --category ai
# Run signal builder
venv/bin/python runtime/intelligence/jobs/run_signal_builder.py --category ai --mode ai
# Run digest
venv/bin/python runtime/intelligence/jobs/run_digest.py --category ai
# Run insights
venv/bin/python runtime/intelligence/jobs/run_insights.py --category ai
# Start Telegram bot
venv/bin/python bot/telegram-bot.pyUse the official wrapper script for scheduled runs:
bash scripts/daily-intelligence.shRecommended cron entry (example: every day at 08:00):
0 8 * * * /bin/bash /home/ubuntu/paos/paos-runtime/scripts/daily-intelligence.shThis path runs the current intelligence pipeline (run_daily_intelligence.py) and writes logs to:
.runtime/logs/daily-intelligence.log
Legacy note:
workers/ai-digest.pyis deprecated and intentionally disabled. Do not use it in cron.
Start the bot in a dedicated shell or tmux session:
tmux new -s telegram
venv/bin/python bot/telegram-bot.pyBefore starting another bot process, confirm that one is not already polling.
Example check:
ps aux | grep telegram-bot.py/update runs the pipeline and sends progress updates, then one final dashboard.
PAOS externalizes the output contract so you can tune the runtime without editing core Python logic.
runtime/intelligence/contracts/dashboard.mdruntime/intelligence/contracts/insight.mdruntime/intelligence/contracts/content-style.mdruntime/intelligence/contracts/source-unit-resilience.mdruntime/intelligence/prompts/insight-system.mdruntime/intelligence/prompts/insight-user.md
Use these files to change dashboard shape, insight behavior, and content style while keeping the runtime code stable.
PAOS Runtime does not replace AI coding tools such as Claude Code, Codex, or GitHub Copilot.
It produces runtime intelligence, context artifacts, and an operational dashboard. Mnemosyne is roadmap work for future working-memory and MCP-facing context exposure to AI coding tools such as Claude Code, Codex, GitHub Copilot, or other MCP-compatible agents. That integration is not implemented as a current runtime requirement.
These areas exist in the repository, but they are not the recommended public install path and should not be treated as the main runtime surface:
context/loader.pyis an internal helper for loading.envand reading selected files frompersonal-context.context/router.pyis legacy and not active runtime code.memory/is a placeholder for future Mnemosyne-related work.workers/contains legacy scripts kept for compatibility.scripts/contains older operational helpers.docker-compose.ymlis experimental/private and not the recommended public install path yet.
Source-controlled:
runtime/bot/runtime/intelligence/contracts/runtime/intelligence/prompts/runtime/intelligence/config.yamlruntime/intelligence/sources/*.yamlinstall.shdoctor.sh
Generated or local:
intelligence/raw/intelligence/candidates/intelligence/signals/intelligence/digests/intelligence/insights/.runtime/runs/.env
intelligence/ is generated output. .runtime/runs/ is runtime status. These should usually not be committed.
- Never commit
.env. - Never commit Telegram bot tokens.
- Never commit API keys.
- Do not commit
personal-contextdata. - Generated artifacts may contain personal or source-derived data.
- Review artifacts and logs before sharing anything publicly.
- New source family: add the collector/policy/config path for the source and wire it into the category config.
- New category: define it in
runtime/intelligence/config.yamland add matching source config where needed. - New dashboard section: extend the insight contract and renderer, then wire the Telegram section mapping.
- New content style: update the content-style contract and prompts.
- Future MCP integration: keep the runtime separate and expose only selected context or memory through MCP.
- Some collectors may require manual or session setup.
- Threads collection may depend on public or authenticated access mode.
- AI quality depends on the configured endpoint and model.
- Fallback insight generation is robust, but less nuanced than successful AI generation.
- GitHub, LinkedIn, and Jobs sources are planned or inactive unless implemented and configured.
personal-contextis not automatically read by the current intelligence pipeline.- Mnemosyne and MCP integration are not implemented as current runtime behavior.
- RSS freshness filtering
- GitHub source
- LinkedIn source
- Job and career source
- Better content-style tuning
- personal-context reader and prompt injection
- Mnemosyne working-memory integration
- MCP bridge for Claude Code, Codex, GitHub Copilot, and other agents
- Dashboard polish
- Source quality scoring
- Keep runtime and context separate.
- Avoid overengineering.
- Prefer small, testable changes.
- Preserve artifact contracts.
- Do not commit secrets.
- Update README or docs when adding user-facing features.
This project is licensed under the MIT License. See LICENSE.