{"id":46665903,"url":"https://github.com/1111philo/learn-extension","last_synced_at":"2026-03-15T19:53:07.791Z","repository":{"id":342833254,"uuid":"1175327893","full_name":"1111philo/learn-extension","owner":"1111philo","description":"1111 — An agentic learning app. Chrome side-panel extension by 11:11 Philosopher's Group.","archived":false,"fork":false,"pushed_at":"2026-03-15T11:56:37.000Z","size":257,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-15T18:53:11.929Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/1111philo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T15:03:17.000Z","updated_at":"2026-03-15T11:56:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/1111philo/learn-extension","commit_stats":null,"previous_names":["1111philo/1111"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/1111philo/learn-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1111philo%2Flearn-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1111philo%2Flearn-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1111philo%2Flearn-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1111philo%2Flearn-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1111philo","download_url":"https://codeload.github.com/1111philo/learn-extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1111philo%2Flearn-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30550784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T15:03:43.933Z","status":"ssl_error","status_checked_at":"2026-03-15T15:03:37.630Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-03-08T18:01:58.043Z","updated_at":"2026-03-15T19:53:07.785Z","avatar_url":"https://github.com/1111philo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/logo.svg\" alt=\"1111\" width=\"80\" height=\"80\"\u003e\n\u003c/p\u003e\n\nAn agentic learning app that runs entirely in the Chrome side panel. Built by [11:11 Philosopher's Group](https://github.com/1111philo).\n\n## What it does\n\n1111 Learn guides learners through predefined courses using four AI agents powered by the Claude API. Each course produces one final work product. All data stays on the user's device.\n\n### Key features\n\n- **Onboarding wizard** -- four-step first-run flow (name → personal statement → data consent → API key) that seeds an inspiring learner profile via AI\n- **Skills check** -- a mandatory diagnostic activity before every new course; the result personalizes the learning plan generated for that course\n- **AI-powered learning** -- six Claude agents handle onboarding, diagnostics, course creation, activity generation, assessment, and learner profile updates\n- **Course catalog** with prerequisite checking\n- **Personalized activity generation** adapted to the learner's profile, prior work, and diagnostic result\n- **AI assessment with vision** -- the Assessment Agent analyzes screenshots of your work and provides structured feedback with strengths, improvements, score, and a recommendation\n- **Output validation** -- deterministic validators check every agent response for safety, format compliance, and activity constraints (browser-only, single page, etc.) before showing it to the learner\n- **Learner profile** -- tracks your strengths, weaknesses, preferences, and learning patterns across courses; updated after assessments, diagnostic results, and feedback\n- **Activity feedback** -- submit feedback on any activity to regenerate it while keeping the same learning goal\n- **Draft recording** -- captures a screenshot of the active tab, the page URL, and AI-generated feedback\n- **Iterative feedback** -- each activity builds on prior drafts and feedback\n- **Final assessment** -- the final work product must meet a minimum passing threshold\n- **Portfolio** -- work cards show progress bars and recording counts; tap into a Build Detail view with full draft timeline and on-demand screenshots\n- **Build narrative** -- activity type labels (Research, Practice, Draft, Deliver) and a completion summary card celebrate your process\n- **Share data with 11:11** -- toggle in Settings to log all agent interactions locally and send anonymous telemetry to 11:11 Philosopher's Group. Includes agent prompts, responses, feedback text you write, scores, and errors. Screenshots and API keys are never sent. Included in JSON export\n- **JSON export** -- export all saved data (metadata + screenshots + dev logs) at any time\n- **Keyboard shortcuts** -- Enter submits inputs, Cmd/Ctrl+Enter submits textareas, Escape dismisses dialogs\n- **Fully local** -- screenshots are stored in IndexedDB; metadata in `chrome.storage.local`. Only API calls to Anthropic are made (with the user's own key).\n- **Accessible** -- keyboard-operable, screen-reader-friendly, respects `prefers-reduced-motion` and `forced-colors`\n- **Lightweight** -- vanilla JS, no frameworks, no local build step; designed for Chromebooks and Android tablets\n\n## Install (developer mode)\n\n1. Clone this repository.\n2. Open `chrome://extensions` in Chrome.\n3. Enable **Developer mode**.\n4. Click **Load unpacked** and select the project folder.\n5. Click the 1111 extension icon to open the side panel.\n6. Complete the onboarding wizard: enter your name, a personal statement, consent to data sharing (optional), and your Anthropic API key.\n\n## File structure\n\n```\nmanifest.json            Chrome extension manifest (Manifest V3)\nbackground.js            Opens the side panel on icon click\nsidepanel.html           Main UI entry point\nsidepanel.css            Styles\njs/\n  app.js                 App shell, routing, views, event handling\n  storage.js             chrome.storage.local + IndexedDB abstraction\n  courses.js             Course loading and prerequisite checking\n  api.js                 Anthropic API client\n  orchestrator.js        Agent orchestration + output validation\n  telemetry.js           Anonymous usage telemetry (opt-in via data sharing toggle)\nprompts/\n  course-creation.md        System prompt for Course Creation Agent\n  activity-creation.md      System prompt for Activity Creation Agent\n  activity-assessment.md    System prompt for Activity Assessment Agent\n  diagnostic-creation.md    System prompt for Diagnostic (Skills Check) Agent\n  diagnostic-assessment.md  System prompt for Diagnostic Assessment Agent (evaluates skills check screenshots)\n  onboarding-profile.md     System prompt for Onboarding Profile Agent\n  learner-profile-update.md System prompt for Learner Profile Agent\ndata/\n  courses.json           Predefined course definitions\nassets/\n  icon.png               Source icon\n  icon-{16,32,48,128}.png  Resized icons for Chrome\n  logo.svg               Logo for README\nPRIVACY.md               Privacy policy\n.github/\n  workflows/\n    release.yml          Auto-versioning and release on push to main\n```\n\n## Releases\n\nReleases are automated via GitHub Actions. Every push to `main` triggers the release workflow:\n\n1. Commits since the last release are analyzed by Claude to determine the appropriate semver bump and generate release notes.\n2. `manifest.json` is updated with the new version.\n3. The extension is packaged into a zip (ready for Chrome Web Store upload).\n4. A GitHub Release is created with the zip attached.\n\nMaintainers must add an `ANTHROPIC_API_KEY` secret to the repository settings for the workflow to function.\n\n## Agent architecture\n\n| Agent | Model | Purpose |\n|-------|-------|---------|\n| Onboarding Profile | `claude-haiku-4-5` | Creates an inspiring initial learner profile from the user's name and personal statement |\n| Diagnostic (Skills Check) | `claude-haiku-4-5` | Generates a brief pre-course assessment activity to gauge prior knowledge |\n| Course Creation | `claude-haiku-4-5` | Generates a personalized learning plan informed by the diagnostic result |\n| Activity Creation | `claude-haiku-4-5` | Fills in detailed instructions for one activity at a time |\n| Activity Assessment | `claude-sonnet-4-6` | Evaluates screenshots with vision + provides structured feedback |\n| Learner Profile | `claude-haiku-4-5` | Incrementally updates learner profile after assessments, diagnostic results, and feedback |\n\nAgent prompts are stored as markdown files in `prompts/` and can be edited without changing code. All activity and assessment outputs are validated before reaching the user.\n\n## Course JSON structure\n\nEach course in `data/courses.json` has:\n\n| Field               | Type       | Description                                      |\n|---------------------|------------|--------------------------------------------------|\n| `courseId`           | `string`   | Unique identifier                                |\n| `name`              | `string`   | Display title                                    |\n| `description`       | `string`   | Summary of purpose and expected value            |\n| `dependsOn`         | `string?`  | Optional prerequisite course ID                  |\n| `learningObjectives`| `string[]` | Outcome statements the course achieves           |\n\n## Permissions\n\n| Permission        | Why                                              |\n|-------------------|--------------------------------------------------|\n| `sidePanel`       | Run the app in the Chrome side panel             |\n| `storage`         | Persist metadata locally                         |\n| `unlimitedStorage`| Allow large screenshot storage in IndexedDB      |\n| `activeTab`       | Capture screenshots and read the active tab URL  |\n| `tabs`            | Query tab information for draft recording        |\n\n### Host permissions\n\n| Host                        | Why                                    |\n|-----------------------------|----------------------------------------|\n| `https://api.anthropic.com/*` | Send requests to the Claude API with the user's own key |\n| `https://czrqy8ea0a.execute-api.us-east-1.amazonaws.com/*` | Send anonymous telemetry when data sharing is enabled |\n\n## Privacy\n\n1111 Learn is local-first. All learning data stays on your device by default. Optional anonymous telemetry can be enabled to help improve the extension. See our full [Privacy Policy](PRIVACY.md) for details.\n\n- **Local by default**: course progress, screenshots, learner profile, and API key never leave your device.\n- **Opt-in telemetry**: \"Share data with 11:11\" in Settings sends anonymous usage data (agent I/O, feedback text, scores). Screenshots and API keys are never sent.\n- **Anonymous**: data is tied to a random ID, not your identity.\n- **90-day retention**: telemetry is automatically deleted.\n- **Your rights**: withdraw consent anytime, request deletion via [1111@philosophers.group](mailto:1111@philosophers.group) or [open an issue](https://github.com/1111philo/learn-extension/issues).\n\nAPI calls to Anthropic use your own key and are governed by [Anthropic's privacy policy](https://www.anthropic.com/privacy).\n\n## License\n\nCopyright (C) 2026 11:11 Philosopher's Group\n\nLicensed under the [GNU Affero General Public License v3.0](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1111philo%2Flearn-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1111philo%2Flearn-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1111philo%2Flearn-extension/lists"}