Skip to main content
Glama

The open-source AI study companion students actually use

Shiori (栞) means bookmark in Japanese β€” because every deadline deserves to be remembered.

MIT License React Gemini AI PRs Welcome Stars Deploy with Vercel

πŸš€ Live Demo β€” no signup required β†’

Shiori Demo

15 pages Β· AI quiz generator Β· SRS flashcards Β· GPA predictor Β· Pomodoro Β· Leaderboard Β· PWA

⭐ Star on GitHub Β Β·Β  πŸš€ Try Demo Β Β·Β  πŸ€– MCP Server Β Β·Β  🧩 Chrome Extension Β Β·Β  πŸ“ dev.to Article Β Β·Β  πŸ’œ Get Pro Β Β·Β  πŸ› Report Bug

πŸ€– New: Shiori MCP Server β€” use your study data directly in Claude Code. "What's due this week?" "Show my grades" "Add assignment: essay due Friday"


🌸 What is Shiori?

Shiori is what Google Classroom should have been.

It syncs your assignments from Google Classroom, hunts deadline emails in Gmail, and hands you an AI study plan powered by Gemini. Track grades with weighted categories, predict your final exam score, generate quizzes from your notes, import an entire semester from your syllabus in one paste, and share your GPA card in one click.

Zero accounts required. Try the full app in 10 seconds with demo mode.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Google Classroom  +  Gmail  +  Google Calendar                   β”‚
β”‚         ↓                ↓              ↓                         β”‚
β”‚                   Shiori AI (Gemini)                              β”‚
β”‚                          ↓                                        β”‚
β”‚  16 pages Β· AI quiz Β· SRS flashcards Β· GPA predictor Β· PWA       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

At a glance

Feature

What it does

πŸ€–

AI Study Plans

Gemini builds a real day-by-day schedule from your deadlines

πŸ“‹

Syllabus Import

Paste your syllabus β†’ AI extracts every assignment instantly

🧠

AI Quiz Generator

Open a note β†’ MCQ quiz with explanations in one click

πŸƒ

SRS Flashcards

Anki-style spaced repetition, CSV/Quizlet import, AI card gen

πŸ“Š

GPA Predictor

Weighted categories + "What score do I need on the final?"

πŸ“

Markdown Notes

Per-course notes, AI summarizer, auto-save, export .md

πŸ†

Leaderboard

Compare study streaks with friends via shareable codes

⏱

Focus Mode

Fullscreen Pomodoro with ambient orbs + motivational quotes

πŸ”₯

Habit Tracker

Daily grid, streak tracking, confetti on full completion

🧩

Chrome Extension

Quick-add, Pomodoro, and Classroom import from any tab

πŸ“±

PWA

Install on mobile, works offline

🎨

Dark / Light Mode

Midnight study room or clean light mode

Your credentials stay local. No data harvesting. No mandatory subscriptions. MIT licensed.


✨ Features

πŸ“š Assignment & Schedule Intelligence

Feature

Description

Google Classroom Sync

Pulls assignments and due dates the moment they're posted

Gmail Intelligence

Scans your inbox and surfaces buried deadline emails

Calendar Integration

Shows assignment deadlines as colored dots alongside your events

iCal Export

Export your assignments as .ics β€” opens in Google Calendar, Outlook, Apple Calendar

πŸ€– AI-Powered Planning

Feature

Description

AI Study Plans

Gemini generates a real day-by-day schedule from your actual deadlines

AI Chat

Ask anything β€” Shiori knows your real assignments and schedule

PDF Study Plan Export

Export your AI-generated schedule as a branded PDF

Smart Prioritization

High/medium/low priority auto-assigned based on due date and estimated hours

πŸ“Š Grade Tracking

Feature

Description

Live GPA Dashboard

Per-course grades, letter grades, and cumulative GPA calculated live

Weighted Categories

Set Homework 30% / Midterm 35% / Final 35% β€” GPA recalculates automatically

Final Exam Predictor

"What score do I need on the final to get an A?" β€” answered instantly

Shareable GPA Card

Generate a beautiful 900Γ—520 PNG report card to share anywhere

πŸ“ Notes

Feature

Description

Per-Course Notes

Color-coded notes linked to each course

Markdown Editor

**bold**, *italic*, `code`, headings, lists β€” with live preview

Auto-Save

Notes save automatically 600ms after you stop typing

Export as Markdown

Download any note as a .md file

Pin Notes

Keep important notes at the top of your list

πŸƒ Flashcards & Spaced Repetition

Feature

Description

Flashcard Decks

Create decks per course, add unlimited Q&A cards

3D Card Flip

Tap to reveal answer with a smooth 3D perspective animation

Spaced Repetition (SRS)

Cards you miss come back sooner; mastered cards push to 1d β†’ 2d β†’ 5d intervals

Streak Tracking

3+ correct in a row = mastered πŸ†; session stats shown after each study session

AI Card Generation

Click "AI CARDS" in Notes editor β€” Gemini reads your notes and creates Q&A flashcards instantly

CSV Import

Paste any tab/comma-separated text β€” works with Quizlet export, Anki CSV, or plain text

Due-Now Counter

Dashboard shows how many cards are ready for review

🧠 AI Quiz Generator

Feature

Description

Generate from Notes

Open any note β†’ click "Generate Quiz" β€” Gemini creates MCQ questions from your study material

Paste Custom Text

Paste any text and get a quiz in seconds

5 / 8 / 10 questions

Choose difficulty length

MCQ with Explanations

4 options per question + AI explains why each answer is right or wrong

Keyboard-driven

Press 1–4 to select, Enter to confirm/advance

Score History

Quiz results saved locally β€” track improvement over time

Score Ring Animation

Animated circular progress ring on results screen

πŸ”₯ Habit Tracker

Feature

Description

Daily Habit Grid

7-day completion grid for any habit you want to build

Streak Counter

Per-habit fire emoji streak β€” don't break the chain

Color-coded habits

Pick a color per habit, add/delete freely

Confetti celebration

Complete all habits for the day β†’ confetti burst πŸŽ‰

⏱️ Focus & Productivity

Feature

Description

Pomodoro Timer

Focus sessions tied to specific assignments, with session history

Sound Notifications

Distinct tones for focus→break and break→focus transitions (Web Audio, no downloads)

Progress Share Card

Canvas-rendered 900Γ—500 PNG with your GPA, focus time, and completion rate β€” download and share

Keyboard Shortcut Modal

Press ? anywhere for a full shortcut reference

Keyboard Shortcuts

gh/ga/gc/gg/gs/gn/gf/gb/gq to navigate, Ctrl+K for AI chat, Ctrl+Shift+A quick capture

🎨 Design

Feature

Description

Dark / Light Theme

Toggle between midnight study room and clean light mode

Midnight Study Room

Dark glassmorphism with floating orbs β€” built for late-night sessions

Framer Motion

Smooth, purposeful animations throughout

Custom fonts

Space Grotesk headings Β· Manrope body Β· Press Start 2P retro accents

  • Demo Mode β€” full app with 5 courses, 10 assignments, grades, events β€” zero setup


⚑ Try it in 10 seconds

1. Visit https://shiori-v1.vercel.app
2. Click "TRY DEMO"
3. You're in β€” no account, no API keys, no Appwrite

Demo mode loads: 5 courses Β· 10 assignments Β· grades with GPA calc Β· upcoming events Β· AI-generated study plan


πŸš€ Self-Host

Prerequisites

  • Node.js v18+

  • npm v9+

  • Google Cloud project with Classroom + Gmail + Calendar APIs enabled

  • Google Gemini API key (free)

  • Appwrite instance (free cloud tier works)

Setup

git clone https://github.com/kaorii-ako/Shiori-v1.git
cd Shiori-v1
npm install
cp .env.example .env
# Fill in your keys β€” see .env.example for the full guide
npm run dev
# Frontend: http://localhost:5173  |  Backend: http://localhost:3001

Required environment variables

GEMINI_API_KEY=          # Google AI Studio (free)
GOOGLE_CLIENT_ID=        # Google OAuth 2.0
GOOGLE_CLIENT_SECRET=    # Google OAuth 2.0
APPWRITE_ENDPOINT=       # Your Appwrite URL
APPWRITE_PROJECT_ID=     # Your Appwrite project
SESSION_SECRET=          # Any random string

πŸ›  Tech Stack

Layer

Technology

Frontend

React 18, Vite, Framer Motion, Tailwind CSS

State

Zustand + zustand/persist

Backend

Express.js (Node.js)

AI

Google Gemini 1.5 Flash

Auth

Appwrite + Google OAuth 2.0

Google APIs

Classroom, Gmail, Calendar

PDF

jsPDF (client-side, no server needed)

Icons

Lucide React


πŸ“ Project Structure

Shiori-v1/
β”œβ”€β”€ client/                    # React frontend (Vite)
β”‚   └── src/
β”‚       β”œβ”€β”€ components/        # GlassCard, Button, Sidebar, AIChat, PomodoroTimer...
β”‚       β”œβ”€β”€ pages/             # Landing, Home, Assignments, Calendar, Grades, StudyPlans, Notes
β”‚       β”œβ”€β”€ stores/            # Zustand (auth, assignments, grades, notes, pomodoro, ui)
β”‚       β”œβ”€β”€ hooks/             # useKeyboardShortcuts
β”‚       └── utils/             # pdfExport, icalExport, demoData
β”œβ”€β”€ server/                    # Express backend
β”‚   β”œβ”€β”€ routes/                # ai, auth, classroom, gmail, calendar, stripe
β”‚   └── services/              # Google OAuth & API wrappers
β”œβ”€β”€ .env.example               # Environment template
└── package.json               # npm workspaces root

πŸ—Ί Roadmap

  • v1.0 β€” Core app: Classroom sync, Gmail, Calendar, AI plans, Grade tracker

  • v1.1 β€” Demo mode Β· Public landing page Β· Pro pricing

  • v1.2 β€” Pomodoro timer Β· Study streak Β· Live GPA dashboard

  • v1.3 β€” Final exam predictor Β· Calendar assignment overlay

  • v1.4 β€” iCal export Β· PDF export (study plan + assignments) Β· Keyboard shortcuts

  • v1.5 β€” Weighted grade categories Β· Shareable GPA card Β· Notes with markdown

  • v1.6 β€” Flashcards with spaced repetition (SRS) Β· 3D card flip Β· AI card generation from notes

  • v1.7 β€” Habit tracker Β· Analytics dashboard Β· Progress share card Β· Dark/light theme toggle

  • v1.8 β€” Keyboard shortcut modal (?) Β· Pomodoro sounds Β· Client-side Gemini API key

  • v1.9 β€” Chrome extension: Pomodoro + quick-add + Google Classroom import

  • v2.0 β€” AI Quiz Generator Β· PWA service worker Β· Student testimonials Β· Email waitlist Β· Confetti on habit completion

  • v2.1 β€” Syllabus Import (paste syllabus β†’ AI extracts all assignments) Β· AI Note Summarizer Β· SEO overhaul

  • v2.2 β€” Firefox extension Β· Chrome Web Store release Β· Shiori Cloud (fully hosted)

  • v2.3 β€” Mobile app (React Native / Expo)

Have an idea? Open a feature request β†’


πŸ’œ Shiori Pro

Want the hosted version β€” no setup, unlimited AI, and premium features?

β†’ shiori-v1.vercel.app/pro

Free (Self-hosted)

Pro (Cloud)

Google Classroom sync

βœ“

βœ“

AI Study Plans

5/month

Unlimited

AI Chat

10/day

Unlimited

PDF Export

βœ“

βœ“

GPA Share Card

βœ“

βœ“

Notes (Markdown)

βœ“

βœ“

Email Reminders

β€”

βœ“

Priority support

β€”

βœ“

Price

Free forever

ΰΈΏ199/month


🀝 Contributing

Contributions are very welcome!

# Fork, then:
git checkout -b feature/your-feature-name
git commit -m "feat: describe what you added"
git push origin feature/your-feature-name
# Open a PR!

Open an issue first for big changes. See CONTRIBUTING.md for guidelines.

Good first issues: good first issue


πŸ‘€ Author

Built by @kaorii-ako


栞 β€” bookmark the things that matter.

If Shiori saves you even one all-nighter, please give it a ⭐

Star History Chart

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
1dRelease cycle
2Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kaorii-ako/Shiori-v1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server