Opened via file://, video conversion & some CDNs need a local server. Run python -m http.server in this folder, then open http://localhost:8000.

Drazil.

a quiet, powerful place for documents, images & studying

Feedback
Study & AI

Study Workspace

AI agent, PDF/Word viewer, flashcards

Quiz

Interrogate what you read, from the Reader or pasted text

Exam Mode

Timed paper · question palette · mistake analysis

Local Library

Save, search and reopen your work

Clock

Zen clock · timer · stopwatch

Whiteboard

Canvas · type text directly · Ctrl+Z

Interactive Diagrams

AI-drawn study diagrams · move, label, quiz yourself

Simulations

Game of Life · Mandelbrot · predator and prey · solar system · chaos, or describe anything else

File Narrator (TTS)

System & on-device neural voices

Dictation

Live transcript as you speak

Chatbot

AI study companion · ask, discuss, explore

Ask & Learn

Ask a question · practise eight kinds of question · build a course from a topic

Transcript Analysis

Paste any transcript → summary, quiz, flashcards, notes

Calendar

Exams · deadlines · reminders that stick

new

Timetable Studio

Describe your routine, get a real timetable built around your fixed commitments

new

Date Sheet

A revision date sheet for exam classes, analysed from your syllabus

Tasks & Notes

Tasks · timers · alarms · sticky notes

To-Do List

A fast, focused checklist, separate from Tasks

Document Generator

8 ready templates: agreements, stories, essays, reports, letters, resumes, minutes

Professional Document Engine

AI-planned, typeset PDFs, Text-to-PDF + real XeLaTeX

new

Video Generator

Praxis, AI lesson becomes an animated video with narration, diagrams and captions

new

SVG Generator

AI text-to-SVG, icons, illustrations, logos and more

new

Slideshow

Open a PDF, present it fullscreen, annotate with the full whiteboard

Utilities

PDF Editor

Edit text · annotate · highlight · insert images and shapes

PDF Merge

Combine multiple PDFs in order

PDF Split

Extract ranges · burst to ZIP

PDF Reorder

Drag · reverse · rotate · delete pages

Reverse PDF

Flip pages from last to first

new

Dual Page

Split a PDF into odd & even halves for manual duplex , with delay pages and reverse order

smart

Text → PDF

Auto-structures plain text · headings · bullets · tables · Markdown & math

new

LaTeX → PDF

\section · \item · \textbf · tabular · math, compiled locally

Word → PDF

Pictures, headings & lists preserved

Watermark

Stamp PDFs & Word documents

PDF Compressor

Re-encodes embedded images, keeps text sharp

PDF Unlocker

Remove owner-password restrictions

OCR & Text Extraction

Read every word from an image or a scanned PDF

Image Viewer / Editor

View, edit, remove backgrounds

Images to PDF

Combine images into PDF

Image Compressor

AVIF, WebP, MozJPEG, sized by measured quality

Video Compressor

H.264, VP9, AV1, best of several encodes

Audio Extractor

Extract audio from video

Audio Compressor

Opus, AAC, MP3, FLAC + loudness

JPG ↔ PNG ↔ WebP

Image format converter

HTML Viewer

Open, render & inspect local HTML in a sandbox

QR Generator

Create QR codes

Poster Tiler

Big image → print-ready pages

MKV → MP4

Video converter · Doc → PDF · CSV ↔ JSON

SVG GeneratorAI text-to-vector

🎨

Enter a description above and hit Generate to create SVG art with AI.

Uses your configured Drazil AI provider. Download as SVG or PNG.

00:00 / 00:00

Local Library

Stored only in this browser's IndexedDB, no cookies, no server. Clearing site data wipes it; cache-only clears are safe. Use Backup JSON / Restore for a portable copy.

Loading library…

What works offline
  1. Everything stored on your device, Library, notebooks, quizzes, flashcards, notes, interactive diagrams, exam history, whiteboards, tasks, calendar, all previously generated content.
  2. All PDF tools, merge, split, reorder, watermark, compress, Markdown→PDF, Word→PDF, Images→PDF. The PDF engine is cached after first use.
  3. All image tools, viewer/editor, compressor, format converter, poster tiler, background remover.
  4. Whiteboard, diagrams, study views, exam mode, tasks, calendar, QR generator, HTML viewer.
  5. AI with Ollama if Ollama is running on your own computer or a machine on your LAN. Cloud AI, by contrast, needs internet.
  6. Dictation (Local whisper model) once the model has been downloaded at least once. Uses the browser's own engine offline too.
  7. Video & audio conversion once the FFmpeg core (~25 MB) has been downloaded at least once.

Requires internet: cloud AI (Gemini / OpenAI / Claude / OpenRouter), the online narrator voices, and the first-time download of the Whisper or FFmpeg engines.

Tasks & Notes

Tasks · timers · alarms · sticky notes, all saved locally.

⏱ Pomodoro
25:00
Work · 25 min
no document

Put a document on the desk

Drop a PDF or Word (.docx) file anywhere in this pane, or open one. You get thumbnails, outline, full-text search, selection → AI, and one-click narration. Reader documents are read-only here, so there is no edit undo control.

Document Generator

Chat-driven drafting with eight ready templates: Agreements, Stories, Academic, Research, Reports, Letters, Resumes and Meeting minutes.

…

Start a new document

Pick a type on the left, fill the fields, then press Generate. The document streams here and you can keep refining it in the chat box below.

Professional Document Engine

Describe the document you want. Drazil plans, designs, typesets, and exports a real PDF.

Your PDF will appear here.

PDF Merge

Stack any number of PDFs into one file, in order.

Drop PDFs here

or click to choose, add as many as you like

PDF Split

Extract ranges, or burst PDFs into parts — one file or many, same settings for each.

Drop PDFs here

or click to choose as many as you like

Reverse PDF

Flip every page from last to first without changing page content.

Drop PDFs here

or click to choose as many as you like, reversed one by one

PDF Reorder

Drag pages into a new order, rotate or delete them.

Drop a PDF here

or click to choose one

Text → PDF

Type or paste Markdown, it renders beside you as you type, then export a clean, paginated PDF with bold, italics, code, tables and images preserved.

Formatting supported in the exported PDF: # h1 · ## h2 · ### h3 · **bold** · *italic* · `code` · > quote · - list · 1. list · --- rule · ```code``` · | table | · [link](https://…)

Supports advanced math and every single language that has a font.

Advanced

Colours , leave a swatch on Auto to follow the dark-page setting.

Word → PDF

Pictures, headings, lists, bold & italic are preserved, margins on every side.

Drop Word documents

.docx, as many as you like — pictures preserved in original order

Watermark

Stamp text across every page of a PDF or a Word document.

Drop PDFs / Word files

.pdf · .docx — as many as you like, same watermark applied to each

PDF Unlocker

Remove restrictions from PDFs that open without a password. Everything is processed locally, nothing is uploaded.

Drop protected PDFs

or click to choose as many as you like, owner-password restrictions are removed from each

Image Viewer / Editor

Zoom (wheel or pinch), crop, draw, remove backgrounds, invert, every pixel stays local.

bg
zoom 100% 0 / 0
Drop an image or .lumen project

or click to choose, or paste from the clipboard (Ctrl+V), PNG, JPEG, WebP, GIF

00:00:00
--

Breathe. The next minute is already on its way.

Ready

100%

Images to PDF

Combine images into one tidy document.

Drop images here

or click to choose, PNG, JPEG, WebP, GIF, BMP

Audio Extractor

Pull the sound track out of any video, decoded locally, exported as WAV.

Drop a video or audio file

or click to choose, mp4, webm, mov, mkv, mp3, m4a, wav…

Image Converter

PNG, JPEG and WebP, one file or a whole batch.

Drop images here

or click to choose, add as many as you like

QR Generator

Design, style, brand and export scannable QR codes, all on this device.

Design presets one click

Content

Modules the little squares

Finder eyes the three corners

Background

The picture sits behind the modules; the quiet zone keeps the code scannable. Best with a subtle image.

Logo centre of the code

logo

Caption printed under the code

Export

Type something above to see the code.

Tip: gradient or unusual module shapes can defeat some phone cameras. Scan the code with your phone before printing it at scale.

HTML Viewer

Open a single HTML file, or a whole folder with its CSS, JS, images and other assets. Everything runs sandboxed on this device.

zoom 100%
All scripts run in an isolated sandbox and cannot touch Drazil or your Library.

Poster & Image Tiler

Cut a big image into printable pages you can tape into a poster, or scale it to an exact physical size. Always rendered at maximum quality.

Drop a poster image

or click to choose one

Custom poster dimensions
The poster is tiled across as many printable pages as it needs. Length + Breadth sets an exact physical size. Total area computes Length × Breadth from the image's own aspect ratio.

Interactive Diagrams

Turn any topic into a study diagram you can explore, quiz yourself on, and export.

100%

File Converter

Drop any file in, get a useful format out. All conversions run on this device.

Drop any file here

or click to choose, images, audio/video, txt/md, csv, json, docx

Transcript Analysis

Paste any transcript from any source. Drazil never contacts the source page; it works only on the text you give it.

OCR & Text Extraction

Read every word from an image or a PDF, on your device. The file never leaves your tab.

on-device OCR
Drop images or PDFs here

PNG · JPG · WebP · PDF, scanned pages welcome

Ollama guide

Connect this website to Ollama on your computer.

Connecting Drazil to Local Ollama

Drazil can connect directly to Ollama running on your own computer, allowing you to use your locally installed AI models inside Drazil.

This is useful because your model runs locally rather than requiring a cloud AI API.

Drazil looks for a local Ollama by itself. If one is running on this computer, the app connects to it on its own the first time you open it and the model shows up in the top bar. The steps below are for when that automatic connection does not happen, or when you want to point Drazil at a different machine.

There is one important catch, though:

Drazil is a website, while Ollama is a local server.

Your browser therefore has to make a request from Drazil's website to your computer.

The two addresses are:

Drazil
https://drazil.app

and

Ollama
http://127.0.0.1:11434

Because these are different origins, your browser applies a security mechanism called CORS (Cross-Origin Resource Sharing).

If Ollama doesn't explicitly allow Drazil's origin, the browser request can be rejected with:

403 Forbidden

Drazil then interprets this as Ollama being unreachable.

The solution is to tell Ollama:

Allow requests coming from https://drazil.app.

That's what OLLAMA_ORIGINS does.

Using an AI Agent, Recommended for Beginners

If you're unfamiliar with environment variables, PowerShell, or restarting background services, you can use an AI coding/terminal agent to help configure this.

Examples include:

  • OpenCode
  • Codex
  • Antigravity
  • Other reputable local coding/terminal agents

The agent doesn't need to modify Drazil itself. Its job is simply to:

  1. Check whether Ollama is installed and running.
  2. Check the current OLLAMA_ORIGINS configuration.
  3. Set the correct origin if necessary.
  4. Restart Ollama.
  5. Test whether the browser origin is accepted.
  6. Tell you exactly what worked or what is still wrong.

How much AI usage will this consume?

Very little. This isn't a large coding project. A capable agent should normally only need a small number of terminal commands and a short conversation. For example, the agent may need to:

Check Ollama
Check OLLAMA_ORIGINS
Set variable
Restart Ollama
Run CORS test
Done

So you shouldn't need to spend hundreds of thousands of tokens on this. A few thousand tokens or less is generally plenty for the actual troubleshooting. If an agent somehow turns this into a 47-file software architecture project, it has gotten way too excited.

Recommended approach

Give the agent the prompt below before letting it make changes. That way, it knows exactly what you're trying to accomplish and is less likely to start changing unrelated settings.

Prompt for an AI Agent

Copy this into OpenCode, Codex, Antigravity, or a similar agent:

I need to connect my locally installed Ollama server to the Drazil website: https://drazil.app Ollama normally runs locally at: http://127.0.0.1:11434 Drazil is showing Ollama as unreachable, and I suspect this is a CORS issue. Please diagnose the problem and configure Ollama so that browser requests from: https://drazil.app are allowed. Use OLLAMA_ORIGINS for this. On Windows, check the User environment variable first. Please follow this process: 1. Check whether Ollama is installed and running. 2. Check the current value of OLLAMA_ORIGINS. 3. If necessary, set the User-level OLLAMA_ORIGINS value to exactly: https://drazil.app 4. Do not change unrelated environment variables. 5. Do not expose Ollama to the internet. 6. Do not set OLLAMA_HOST to 0.0.0.0. 7. Do not port-forward port 11434. 8. Fully restart Ollama so it reads the new environment variable. 9. Test the Ollama API. 10. Test a request containing: Origin: https://drazil.app against: http://127.0.0.1:11434/api/tags 11. Confirm whether the response is HTTP 200. 12. If it still returns 403, diagnose the actual cause rather than randomly changing settings. Do not delete, move, reinstall, or modify my Ollama models. Do not make unrelated system changes. At the end, clearly tell me: - whether Ollama is running - what OLLAMA_ORIGINS is set to - whether the CORS test returned 200 - what Base URL I should enter into Drazil - whether I need to do anything else Ask for confirmation before making any potentially unrelated or risky system changes.

One important thing

Don't give an agent unnecessary permissions just because it says it needs them. For this task, it should not need to:

  • Access your browser passwords
  • Access your personal files
  • Change firewall rules
  • Modify your router
  • Expose your PC to the internet
  • Delete Ollama data

The task is basically an environment-variable + restart + test job.

Requirements

Before beginning, make sure you have:

  • Ollama installed
  • Ollama running on your computer
  • At least one model downloaded
  • Chrome, Edge, Firefox, or another modern browser
  • Internet access to Drazil

For example:

ollama pull llama3.2

Check your installed models:

ollama list

Step 1, Confirm Ollama Is Running

Open this in your browser:

http://127.0.0.1:11434

You should see:

Ollama is running

If you don't, launch Ollama and wait for it to start.

Terminal test

You can also run:

curl.exe http://127.0.0.1:11434/api/tags

If Ollama is working, you'll receive JSON containing your installed models.

Step 2, Allow Drazil's Origin

This is the actual CORS fix. Set:

OLLAMA_ORIGINS=https://drazil.app

Windows, easiest method

  1. Press Windows.
  2. Search for Edit the system environment variables.
  3. Open it.
  4. Click Environment Variables...
  5. Under User variables, click New...
  6. Enter:

Variable name

OLLAMA_ORIGINS

Variable value

https://drazil.app

Click OK through all the dialogs.

Or use PowerShell

Run:

[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS","https://drazil.app","User")

Step 3, Restart Ollama, VERY IMPORTANT

Changing the environment variable doesn't automatically update an Ollama process that is already running. Ollama needs to start again so it can read the new value.

Windows

  1. Right-click the Ollama icon in the system tray.
  2. Choose Quit.
  3. Launch Ollama again from the Start menu.

macOS

Quit Ollama completely and relaunch it.

Linux

If you're running Ollama as a system service:

sudo systemctl restart ollama

The restart is essential. Without it, you can correctly set OLLAMA_ORIGINS and still get a 403 because the old Ollama process is still running with its previous configuration.

Step 4, Test the CORS Configuration

This is the best way to determine whether the problem is actually fixed. On Windows:

curl.exe -s -o NUL -w "%{http_code}" -H "Origin: https://drazil.app" http://127.0.0.1:11434/api/tags

You want:

200

200, Success

Great! Ollama accepted a request carrying Drazil's origin. You can move on to Drazil.

403, Still rejected

Ollama is still rejecting the origin. Continue to Troubleshooting.

Step 5, Connect Ollama in Drazil

Open:

https://drazil.app

Go to Settings and select:

Provider: Ollama

Base URL:

http://127.0.0.1:11434

Then select a model that you've already downloaded with Ollama. For example:

llama3.2

Send a test message. If everything is configured correctly, Drazil should now be able to communicate with your local model.

Troubleshooting

Still getting 403?

Check the environment variable:

[Environment]::GetEnvironmentVariable("OLLAMA_ORIGINS","User")

It should contain the Drazil origins:

https://drazil.app

Other entries are fine as long as these are all there. The local server entries, for example, are for running Drazil on your own machine:

http://localhost:8080,http://127.0.0.1:8080

Make sure there aren't:

  • Extra spaces
  • Quotes
  • Markdown formatting
  • Typos
  • A different domain

Then fully restart Ollama again.

Diagnostic test: temporarily allow all origins

If you're certain everything looks correct but you're still getting 403, you can temporarily test whether the problem is definitely the origin restriction.

Set:

[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS","*","User")

Restart Ollama. Then run the CORS test again:

curl.exe -s -o NUL -w "%{http_code}" -H "Origin: https://drazil.app" http://127.0.0.1:11434/api/tags

If you now get 200, then you've confirmed that the problem is the origin configuration.

Afterwards, change it back

Don't leave it at * unnecessarily. Set it back to:

[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS","https://drazil.app","User")

Then restart Ollama one more time.

Which browser you use matters

Firefox reaches a local Ollama from this site directly. Chrome and Edge enforce Private Network Access, which blocks a public HTTPS site from reaching 127.0.0.1 before any cross-origin check happens, and Ollama does not send the header that would allow it. In Chrome the request fails even when Ollama is running and the origin is allowed, and no Ollama setting will change that. The same setup works in Firefox.

Switching browsers is the whole fix. If you need Chrome specifically, the app has to be opened over http://localhost instead of the hosted URL, or a small local proxy has to sit in front of Ollama and answer with Access-Control-Allow-Private-Network: true.

Drazil Still Says "Ollama Unreachable"

Work through these checks:

Check 1, Ollama

Open: http://127.0.0.1:11434, Does it say Ollama is running?

Check 2, Models

Run: ollama list, Make sure at least one model is installed.

Check 3, API

Run: curl.exe http://127.0.0.1:11434/api/tags, You should receive JSON.

Check 4, CORS

Run the CORS test above. You want 200.

Check 5, Try localhost

If Drazil still can't connect using http://127.0.0.1:11434, try http://localhost:11434 as the Base URL.

Security Notes

This setup is designed to keep Ollama local.

The intended architecture is:

             Internet
                |
                v
       +-----------------+
       |      Drazil      |
       | drazil.app |
       +--------+--------+
                |
          Browser request
                |
                v
       +-----------------+
       |   127.0.0.1     |
       |     :11434      |
       +--------+--------+
                |
                v
         +----------+
         |  Ollama  |
         +----+-----+
              |
              v
       Your local model

You do not need to expose Ollama to the internet.

Avoid doing things like:

  • Setting OLLAMA_HOST=0.0.0.0
  • Port-forwarding 11434
  • Disabling your firewall just to make Drazil work

What OLLAMA_ORIGINS Actually Does

It's worth understanding what you're changing. The browser essentially tells Ollama:

"I'm making this request from: https://drazil.app"

Ollama checks whether that origin is allowed.

Without the configuration:

Drazil -> Ollama
       X Origin not allowed
       -> 403

With OLLAMA_ORIGINS=https://drazil.app:

Drazil -> Ollama
       OK: Origin allowed
       -> 200

Your model itself doesn't change. Your downloaded model files don't change. You're simply telling Ollama which web origin is allowed to communicate with it.

TL;DR

If you're comfortable with the terminal:

1. Set the origin

[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS","https://drazil.app","User")

2. Restart Ollama

Quit Ollama completely -> launch it again.

3. Test

curl.exe -s -o NUL -w "%{http_code}" -H "Origin: https://drazil.app" http://127.0.0.1:11434/api/tags

You want: 200

4. Drazil

Provider: Ollama
Base URL: http://127.0.0.1:11434

Choose your installed model. Done.

Final Recommendation

If you aren't comfortable with the terminal, I recommend using an agent like OpenCode, Codex, or Antigravity for this setup.

This is exactly the kind of small system-configuration task where an agent is useful: it can inspect your current configuration, run the appropriate commands, restart Ollama, and verify the result rather than making you hunt through Windows settings yourself.

And importantly, this should be a very small agent task. You don't need to burn through a giant context window or use an expensive model. A lightweight but competent coding model should generally be more than enough.

Just give the agent the prompt above and tell it:

Diagnose this first. Don't make unrelated changes.

That one sentence can save you from the classic AI-agent experience of asking it to fix one environment variable and watching it decide that your entire computer needs a spiritual reboot.

Image Compressor

Every image is encoded as AVIF, WebP, JPEG and PNG, each one decoded back and scored against your original until it hits the quality target you picked. The smallest file that clears the target wins , so the answer is measured, not guessed from an encoder's quality slider. Nothing leaves your device

Drop images here

or click to choose · JPEG, PNG, WebP, AVIF, GIF, BMP, TIFF, HEIC-as-JPEG
Nothing is uploaded , the encoders run in this tab.

Resizing is off by default; the resampler is Lanczos-3, not bilinear.

PDF Compressor

Most of a PDF is embedded images, so that is where this spends its effort: they get decoded, re-encoded with MozJPEG or AVIF at a resolution matched to how large they actually appear on the page, and scored against the original. The text layer is left alone, so the result stays selectable and searchable. Runs entirely in this tab

Drop a PDF here

or click to choose , including password-protected files you already have the password for

Returns the original untouched when nothing beats it; vector-heavy PDFs rarely shrink.

Video Compressor

A genuine re-encode, not a rename. Several encodes of your clip are run and the smallest one that still meets the quality target is what you get. Nothing is uploaded

Drop a video here

or click to choose · mp4, mkv, webm, mov, avi, m4v

Minutes per 1080p minute — lower resolution first, CRF buys little.

Audio Compressor

Opus, AAC, MP3 and FLAC, encoded as variable bitrate where that is available and normalised to the EBU R128 target so the result is not merely smaller but correctly loud. Nothing is uploaded

Drop an audio or video file

or click to choose · mp3, m4a, wav, flac, ogg, aac, opus, mkv, mp4, webm

Already lossy at the target bitrate? FLAC or audio-stream copy avoids a second generation of artefacts; the tool will say when.

Settings

Provider & model

Not configured

Every model from every provider you have configured is listed here. Picking one makes it the active choice for Chat, the Reader and everything else; only its own provider's key is ever used.

Without a provider, Chat needs an AI provider (local Ollama or your own cloud key), everything else runs entirely offline.

Keys & endpoints

Keys are stored only in this browser and are never sent anywhere except to the provider you name. The quick-start guide for getting a free key is inside that panel.

AI Providers
Keys are stored only in this browser. Without an AI provider, Chat tells you so instead of guessing. For Ollama setup and troubleshooting, open the dedicated Ollama guide page below.
How to get a free API key quick start
Google Gemini Free tier available
  1. Go to aistudio.google.com/apikey
  2. Sign in with your Google account
  3. Click Create API key, it's instant and free (no credit card)
  4. Copy the key (starts with AIza…)
  5. Back here: select Google in the dropdown → Add provider → paste the key

Free quota: ~1,500 requests/day with gemini-2.5-flash. Best starting point.

OpenAI
  1. Go to platform.openai.com/api-keys
  2. Create account → add a small credit ($5 is plenty for months of use)
  3. Click Create new secret key → copy it (starts with sk-…)
  4. Select OpenAI → Add provider → paste the key
OpenRouter Free models available
  1. Go to openrouter.ai/keys
  2. Sign up (free) → click Create Key
  3. Many models (Llama, Gemma, Mistral) are completely free with rate limits
  4. Select OpenRouter → Add provider → paste key → pick a free model
Anthropic (Claude)
  1. Go to console.anthropic.com
  2. Create account → add credit → click Create Key (starts with sk-ant-…)
  3. Select Anthropic → Add provider → paste the key
OpenCode Zen Free models available

One gateway to GPT, Claude, Gemini, Grok, DeepSeek, Kimi, GLM and MiniMax, each model benchmarked with its provider. Endpoint is pre-filled with https://opencode.ai/zen/v1. Several models are free.

Note: Drazil speaks only /chat/completions. Each Zen model shows its endpoint in the picker (chat/completions, responses, messages, or models/{id}), pick a chat/completions model or the call will fail.

  1. Go to opencode.ai/auth and sign in
  2. Add billing details, then copy your Zen API key
  3. Select OpenCode Zen → Add provider → paste the key
  4. Press Refresh models on the provider row for the full live list

Zen serves each family on its own endpoint. Drazil speaks /chat/completions, so pick one of the compatible ids (qwen3.8-max, deepseek-v4-pro, kimi-k3, glm-5.3, space-bunny-free). GPT, Claude and Grok ids on Zen use /responses or /messages instead.

Groq Free tier, very fast
  1. Go to console.groq.com/keys
  2. Sign up → Create API Key → copy it
  3. Select Groq → Add provider → paste the key
Together AI Free models available
  1. Go to api.together.ai
  2. Sign up → copy your API key
  3. Select Together AI → Add provider → paste the key
DeepInfra Free models available
  1. Go to deepinfra.com
  2. Sign up → copy your API key
  3. Select DeepInfra → Add provider → paste the key
xAI (Grok)
  1. Go to console.x.ai
  2. Add credit → API Keys → create a key
  3. Select xAI (Grok) → Add provider → paste the key
Cerebras Free tier
  1. Go to cloud.cerebras.ai
  2. Sign up → copy your API key
  3. Select Cerebras → Add provider → paste the key
Fireworks AI Free credits
  1. Go to fireworks.ai/api-keys
  2. Sign up → copy your API key
  3. Select Fireworks AI → Add provider → paste the key

?? All keys are stored only in your browser (localStorage), they are never sent to Drazil servers.

OpenAI · Gemini · Claude · OpenRouter · Zen · Groq · Together · DeepInfra · xAI · Ollama · Custom
Choose models
Tick every model you want to keep for this provider. Drazil only ever sends requests to the models you enable, and the model picker shows exactly this list.

0
Ctrl+Shift+C toggles

PDF Editor

Edit text, annotate, insert images and shapes, everything on-device.

Drop a PDF here

or choose a file, then click the page to add text, shapes, highlights, images or notes.