MCPcopy Index your code
hub / github.com/Nutlope/smartpdfs

github.com/Nutlope/smartpdfs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
44 symbols 138 edges 32 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SmartPDF

SmartPDF

Instantly summarize and section your PDFs with AI. Powered by Llama 3.3 on Together AI.

Tech stack

  • Together AI for inference
  • Llama 3.3 for the LLM
  • Next.js with Tailwind & TypeScript
  • Prisma ORM with Neon (Postgres)
  • Helicone for observability
  • Plausible for analytics
  • S3 for PDF storage

Cloning & running

  1. Clone the repo: git clone https://github.com/Nutlope/smartpdfs
  2. Create a .env file and add your environment variables (see .example.env):
  3. TOGETHER_API_KEY=
  4. DATABASE_URL=
  5. S3_UPLOAD_KEY=
  6. S3_UPLOAD_SECRET=
  7. S3_UPLOAD_BUCKET=
  8. S3_UPLOAD_REGION=us-east-1
  9. HELICONE_API_KEY= (optional, for observability)
  10. Run pnpm install to install dependencies
  11. Run pnpm prisma generate to generate the Prisma client
  12. Run pnpm dev to start the development server

Roadmap

  • [ ] Add some rate limiting by IP address
  • [ ] Integrate OCR for image parsing in PDFs
  • [ ] Add a bit more polish (make the link icon nicer) & add a "powered by Together" sign
  • [ ] Implement additional revision steps for improved summaries
  • [ ] Add a demo PDF for new users to be able to see it in action
  • [ ] Add feedback system with thumbs up/down feature

Extension points exported contracts — how you extend this code

SummaryContentProps (Interface)
(no doc)
src/components/ui/summary-content.tsx
State (Interface)
(no doc)
src/hooks/use-toast.ts
TableOfContentsProps (Interface)
(no doc)
src/components/ui/table-of-contents.tsx
ButtonProps (Interface)
(no doc)
src/components/ui/button.tsx

Core symbols most depended-on inside this repo

cn
called by 15
src/lib/utils.ts
dispatch
called by 5
src/hooks/use-toast.ts
toast
called by 4
src/hooks/use-toast.ts
useToast
called by 4
src/hooks/use-toast.ts
addToRemoveQueue
called by 2
src/hooks/use-toast.ts
getPdfText
called by 1
src/lib/summarize.ts
chunkPdf
called by 1
src/lib/summarize.ts
summarizeStream
called by 1
src/lib/summarize.ts

Shape

Function 40
Interface 4

Languages

TypeScript100%

Modules by API surface

src/hooks/use-toast.ts9 symbols
src/lib/summarize.ts7 symbols
src/app/page.tsx3 symbols
src/components/ui/table-of-contents.tsx2 symbols
src/components/ui/summary-content.tsx2 symbols
src/app/pdf/[id]/smart-pdf-viewer.tsx2 symbols
src/app/pdf/[id]/page.tsx2 symbols
src/app/actions.ts2 symbols
src/lib/utils.ts1 symbols
src/components/ui/toaster.tsx1 symbols
src/components/ui/spinner.tsx1 symbols
src/components/ui/logo.tsx1 symbols

For agents

$ claude mcp add smartpdfs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact