Austen is an AI-powered Angular application initialized with Analogjs to generate story relationships between book characters using Mermaidjs diagrams.
- 📚 Search and analyze any book from Open Library
- 🤖 AI-powered character relationship analysis
- 📊 Generate Mermaid diagrams
- 💾 Save, download (SVG, PNG) and manage your generated graphs
- 🌐 Share graphs publicly or keep them private
- 🔍 Discover public graphs generated by other users
A character relationship graph generated for “The Wizard of Oz” by “L. Frank Baum”:
init: {
‘theme’: ‘base’,
‘themeVariables’: {
‘primaryColor’: ‘#BB2528’,
‘primaryTextColor’: ‘#fff’,
‘primaryBorderColor’: ‘#7C0000’,
‘lineColor’: ‘#F8B229’,
‘secondaryColor’: ‘#006100’,
‘tertiaryColor’: ‘#fff’
}
}
}%%
graph TD
A[Dorothy Gale] –>|Pet| B[Toto]
A –>|Family| C[Uncle Henry and Aunt Em]
A –>|Friends| D[Scarecrow]
A –>|Friends| E[Tin Woodman]
A –>|Friends| F[Cowardly Lion]
A –>|Enemy| G[The Wicked Witch of The West]
A –>|Enemy| H[The Wizard of OZ]
A –>|Helps Dorothy| I[Glinda]
D –>|Friends| E
E –>|Friends| F
B –>|In Kansas| C
” dir=”auto”>
%%{
init: {
'theme': 'base',
'themeVariables': {
'primaryColor': '#BB2528',
'primaryTextColor': '#fff',
'primaryBorderColor': '#7C0000',
'lineColor': '#F8B229',
'secondaryColor': '#006100',
'tertiaryColor': '#fff'
}
}
}%%
graph TD
A[Dorothy Gale] -->|Pet| B[Toto]
A -->|Family| C[Uncle Henry and Aunt Em]
A -->|Friends| D[Scarecrow]
A -->|Friends| E[Tin Woodman]
A -->|Friends| F[Cowardly Lion]
A -->|Enemy| G[The Wicked Witch of The West]
A -->|Enemy| H[The Wizard of OZ]
A -->|Helps Dorothy| I[Glinda]
D -->|Friends| E
E -->|Friends| F
B -->|In Kansas| C
Loading
-
Clone the repository:
git clone https://github.com/herol3oy/austen.git cd austen
-
Install dependencies:
-
Set up environment variables:
- Copy
.env.example
to.env
- Fill in the required API keys:
DEEPSEEK_API_KEY=your_deepseek_api_key VITE_PUBLIC_SUPABASE_URL=your_supabase_url VITE_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
- Copy
-
Set up Supabase:
- Create a new Supabase project
- Enable authentication
- Create graphs table in the public schema:
- id uuid primary key
- book_name text not null
- author_name text not null
- svg_graph text not nul
13 Comments
ozim
I was thinking JIRA stories, well corporate dev dirty mind.
knowitnone
This is handy. When I read, sometimes I have to go back and figure out who a character is so this is definitely right up my alley.
WillAdams
How do typos get fixed?
The entry for _The Book of Jhereg_ has "Morio" which is not found in the text (conflation of Morollan and Mario?)
eterps
The system prompt can be found here:
https://github.com/herol3oy/austen/blob/main/src/server/rout…
It would be more interesting if the graph could be generated by sourcing an arbitrary epub file into a RAG and have it figure out character relations without reading the whole book.
I wouldn't be surprised if it all could be done with a script using aichat[1] and rendering the diagram using graphviz.
[1] https://github.com/sigoden/aichat
curtisszmania
[dead]
skeptrune
I tried "The Wise Man's Fear" and the results were not so great[1]. It got a good number of the characters, but only showed them being related to Kvothe. Harry potter worked better'ish, but still not great[2].
My primary interest would be using these relational graphs to generate better structured summaries of stories in a structured JSON object for improved search/recommendations.
– [1]https://austen.pages.dev/ecbc2d49-c10d-4e49-ac68-0d37a819b52…
– [2]https://austen.pages.dev/ace16c1d-c74e-4737-a98d-5401047a1cd…
napoleongl
Wild that I was daydreaming earlier today about generating some diagrams with mermaid to show the plot and characters over the lifetime of a tv series!
kacesensitive
I did Dungeon Crawler Carl – hilariously wrong
graph TD
A[Carl] –>|Pet| B[Princess Donut]
A –>|Enemy| C[Mordecai]
A –>|Allies| D[Ellie]
A –>|Allies| E[Katia]
A –>|Enemy| F[The System]
B –>|Rival| G[Bea]
D –>|Friend| E
E –>|Friend| A
MarcelOlsz
https://gitdiagram.com/ does something similar.
wduquette
Are story relationship diagrams of this kind a common thing that the OP's tool produces automatically, or did he devise both the tool and the diagram?
memhole
For anyone vibe checking the results:
https://novelchallenge.github.io/
At best you’re looking at 60% or so accuracy
aardvark179
Tried Book of the New Sun. Apparently Terminus Est (a sword) is Severian’s companion, and it completely fails to mention Dorcas.
Oh well.
herol3oy
Hi, I created the app. I appreciate all of your comments. I know some may find the result of a book not concise or accurate. One issue was that I couldn't afford the price of a better LM service. At first, I tried a free tier of Gemini, but its results were disappointing. Later, I switched to DeepSeek and got better results.