{"id":48717087,"url":"https://github.com/joanium/joanium","last_synced_at":"2026-06-14T05:03:24.110Z","repository":{"id":358255037,"uuid":"1226657790","full_name":"Joanium/Joanium","owner":"Joanium","description":"Your smart, reliable, and friendly personal AI assistant.","archived":false,"fork":false,"pushed_at":"2026-06-09T04:32:17.000Z","size":246070,"stargazers_count":82,"open_issues_count":0,"forks_count":12,"subscribers_count":23,"default_branch":"main","last_synced_at":"2026-06-09T06:28:22.847Z","etag":null,"topics":["agent","ai","ai-agent","automation","claude-code","codex","deepseek","gemini","gemini-pro","hermes-agent","joanium","kilo-code","kimi","minimax","open-claude-code","open-code","open-human","openclaw","opencode","qwen"],"latest_commit_sha":null,"homepage":"https://www.joanium.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Joanium.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"withinjoel","buy_me_a_coffee":"withinjoel"}},"created_at":"2026-05-01T17:16:25.000Z","updated_at":"2026-06-09T04:32:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Joanium/Joanium","commit_stats":null,"previous_names":["joanium/joanium"],"tags_count":65,"template":false,"template_full_name":null,"purl":"pkg:github/Joanium/Joanium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joanium%2FJoanium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joanium%2FJoanium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joanium%2FJoanium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joanium%2FJoanium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Joanium","download_url":"https://codeload.github.com/Joanium/Joanium/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Joanium%2FJoanium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34309658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","ai","ai-agent","automation","claude-code","codex","deepseek","gemini","gemini-pro","hermes-agent","joanium","kilo-code","kimi","minimax","open-claude-code","open-code","open-human","openclaw","opencode","qwen"],"created_at":"2026-04-11T17:33:37.103Z","updated_at":"2026-06-14T05:03:24.078Z","avatar_url":"https://github.com/Joanium.png","language":"JavaScript","funding_links":["https://github.com/sponsors/withinjoel","https://buymeacoffee.com/withinjoel"],"categories":[],"sub_categories":[],"readme":"# 📚 Joanium Docs\n\nWelcome to the Joanium documentation. Here's where to start depending on what you're trying to do.\n\n## 🗺️ Recommended Reading Order\n\nIf you're new to the codebase, read in this order:\n\n1. **[Architecture.md](Architecture.md)** — understand the mental model and how the app is assembled\n2. **[Features.md](Features.md)** — see the full product surface and what's already built\n3. **[Data-And-Persistence.md](Data-And-Persistence.md)** — understand where state lives and why\n4. **[Extension-Guide.md](Extension-Guide.md)** — learn how to add new features, engines, pages, and services\n5. **[Where-To-Change-What.md](Where-To-Change-What.md)** — day-to-day maintenance map\n6. **[Development-Workflow.md](Development-Workflow.md)** — scripts, packaging, and contributor workflow\n\n## ⚡ Quick Lookup\n\n| I want to...                        | Read this                                          |\n| ----------------------------------- | -------------------------------------------------- |\n| Understand how the app boots        | [Architecture.md](Architecture.md)                 |\n| See what features already exist     | [Features.md](Features.md)                         |\n| Find where user data is stored      | [Data-And-Persistence.md](Data-And-Persistence.md) |\n| Add a new integration or feature    | [Extension-Guide.md](Extension-Guide.md)           |\n| Change a specific page or subsystem | [Where-To-Change-What.md](Where-To-Change-What.md) |\n| Build, audit, or package the app    | [Development-Workflow.md](Development-Workflow.md) |\n\n## 🧠 The Mental Model in 30 Seconds\n\nThink of Joanium as **5 layers stacked on top of each other:**\n\n```\n┌─────────────────────────────────────────────┐\n│  5. Local data, markdown libraries, prompts  │  ← Skills, Personas, Memories, Config\n├─────────────────────────────────────────────┤\n│  4. Renderer pages + shared UI               │  ← Chat, Agents, Automations, etc.\n├─────────────────────────────────────────────┤\n│  3. Long-lived engines + services            │  ← Agents engine, Automation engine, etc.\n├─────────────────────────────────────────────┤\n│  2. Discovery + composition                  │  ← Feature Registry, Boot.js\n├─────────────────────────────────────────────┤\n│  1. Electron boot + process plumbing         │  ← App.js, Main process, Preload\n└─────────────────────────────────────────────┘\n```\n\nOnce that clicks, the rest of the repo becomes much easier to navigate.\n\n\u003e 💡 **Key insight:** Joanium is not organised around one monolithic app file. It's **assembled** through workspace package discovery. Add a package → it just shows up at boot.\n\n## 📁 Where the important folders live\n\n```text\nPackages/Main/          ← Boot, discovery, services, IPC registration\nPackages/Features/      ← Long-lived background runtimes (engines)\nPackages/Capabilities/  ← Integration packages (GitHub, Google, etc.)\nPackages/Pages/         ← User-facing pages\nPackages/Renderer/      ← SPA shell that mounts pages + sidebar\nPackages/System/        ← Shared contracts and low-level helpers\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoanium%2Fjoanium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoanium%2Fjoanium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoanium%2Fjoanium/lists"}