Show HN: Learn from 30 historical figures, open source, nonprofit, self-hosted

github.com

43 points by micstradev a day ago

Hello HN, I am the founder of Agora Cosmica.

This started about three years ago. On a walk I asked a chatbot to interpret the cave dream from Cormac McCarthy's book "The Road" as C.G. Jung. It gave me a perspective I had not thought of. But for my own dreams the policies of the big providers felt wrong for so personal conversations, as zero data retention is not available. So I started building.

The project evolved to a German nonprofit and we published the code (AGPL-3.0) last month. The content is still copyright, but will be opened to CC-BY 4.0 in the next 6 to 12 months.

Agora Cosmica is a library to learn from 30 historical figures. Each one has 12 narrated stories about their teachings / life wisdom, speech to speech conversation. Four learning modes and a council where you can gather the figures to discuss or reflect on a topic. Each figure is an AI Echo, an interpretation grounded in primary works, historical context, with a factcheck per figure to show what's verified versus recreated. On privacy: The speech is self hosted on Hetzner GPU servers, Qwen3-TTS for German, Kokoro TTS for English, Faster-Whisper for transcription. 30 free messages per day (EU-hosted for GDPR), BYOK, or you can run it in a full local self-hosted mode.

No conversation is stored, no tracking cookies, no profiling, no signup.

The app is slow on purpose. Cosmic, no dopamine rush.

The mission is to be a doorway, a first step, an introduction to get people interested and outgrow the app to move to primary texts and human teachers.

Live at: https://agoracosmica.org

weakfish a day ago

> AI Echo

I don't think it's fair to these very real humans to try and distill their essence from what they presented publicly. Real humans are messy and complicated.

This feels really, really disrespectful. Just because someone died a long time ago doesn't mean it's any less weird to do digital necromancy.

  • micstradev a day ago

    You are right, we can not capture a messy and complicated human being. Therefore we tried our best to frame it right with the “Echo“ and disclaimer. We have the fact check sheets to show what is recreated and what the facts are. We also have the shadow section in the fact check sheets to show that these humans were messy, but tried to portray them inside the platform for what they gave to the world, all under the objective to make hard accessible wisdom / philosophy more accessible, as a doorway, that people outgrow us and move from our introduction to primary texts and human teachers.

  • jstanley a day ago

    I think "echo" is a fine word to use, they're hardly calling them "reincarnations".

    • weakfish a day ago

      Wording aside, I think the concept is icky.

      • chunky1994 a day ago

        Why though?

        We have writing, artifacts and objects from ancient peoples which we then use to try to construct historiographies of those cultures, as well as interpretations of their lived experience and circumstances.

        This is just doing it for specific historical figures with a different type of technology. Why is it more disrespectful than what historians do?

        • weakfish a day ago

          Because this is placing words in their mouth and pretending it’s something they’d say, not just analyzing it. It pretends in knows their inner world and mind when we only have public artifacts.

          Historians also generally adhere to a standard when making a claim, not throwing it to the math machine for regurgitating.

          • goodmythical 18 hours ago

            If I said something like "socrates might have asked..." as so many many many people and articles and people have said before me...?

            I don't see you in the comment section of all those articles that engagegd in such behavior; naming Socrates as the inspiration of their inquistion.

            Why now? Why here?

            • weakfish 7 hours ago

              Because it's generating that output using a simulacra, which may mislead and act as if it is Socrates, not using real human reasoning to extrapolate.

              There isn't an objective right or wrong here, but it just strikes me as gross. It's fine if you disagree and I appreciate you interrogating the reasons as it helps us both strengthen our thinking.

zoogeny a day ago

This is an interesting project and in some ways similar to an idea I had. My idea was actually just to aggregate primary texts (whatever public domain versions are available) for a wide range of philosophical and spiritual work and provide an easy way to include it as context in straight-forward LLM calls.

I've skimmed this announcement, your github repo and your site and it isn't clear to me, are these custom models? Are they fine-tuned from some base model? e.g. do you have 30 separate models?

  • micstradev 20 hours ago

    We have no custom models and no fine tuning. It is the base model, Qwen3 235B for the free tier and we recommend Qwen3.6 27B for the local mode. So the figures are data, not weights. We have instruction files for every figure and additional voice profiles for the councils. The work was put into the iterations to improve the instructions. It is possible to fetch them from the CDN, for example: https://media.agoracosmica.org/instructions/jung/free_conver...

    I like your primary texts idea. For our case we tried to keep the instructions lean to have them around 4k tokens, so that it also works in local mode for users with limited context.

    • zoogeny an hour ago

      Totally understand on managing context length. But in a sense, the work is just providing the library of primary texts (and given the public domain nature of these kinds of works, that seems both ethical and legal) and some mechanism to include them into the context as desired by the user.

      As an example user story, maybe I want to get Plato's reaction to Buddha. It might be convenient to have a library of sutra's that I could grab extracts from in order to send to the instructed model for further reflection. That puts the context management into the users hands. From a UI perspective you would need a library interface, the ability to select extracts, some indication of context available vs. context used, etc.

lavaman131 13 hours ago

This is interesting way of presenting content and I do feel like engaging educational content is a valuable thing to work on. For the historical figures, how are you handling grounding the facts/reducing hallucinations that may conflict with historical accuracy? Also do you plan on making it possible for people to add their own historical figures like a registry of sorts?

  • micstradev 12 hours ago

    Thank you. A lot of our content is pre-created and not live generated. Every figure has a fact check modal, which can also be fetched via CDN, for example:

    https://media.agoracosmica.org/factchecks/en/jung.json

    For the live generated content, sure, we cannot rule out hallucinations. From testing it feels like a grounded instruction helps, but to be honest we have not measured it. Therefore we have the "Echo" framing, disclaimers on the landing pages, and checkboxes when entering the app.

    A registry is not planned because every figure needs a lot of pre-created content. As mentioned in another comment we plan to add more figures in the future, but we will let the community decide which one.

Xotic007 a day ago

Really like this. The mission stands out the most, you've built something that's honest about being a starting point and is actually designed to send people on to the primary texts and real teachers, which is the opposite of what most apps optimize for. The per-figure factcheck showing what's verified versus recreated is a thoughtful honesty touch too. Lovely project.

tetrisgm a day ago

Very interesting idea. Is this an experiment or something you’re looking to grow as a business? I’m curious about how this thing will evolve.

I would totally use a version of this for Swift programming

  • micstradev a day ago

    Thanks. I put 3 years of my life to build it, founded a nonprofit, so it is more than an experiment. In regards of business, it stays nonprofit, no investors, no exit. We will provide free messages and we will continue running our gpu servers in the long run. Our goal is to make wisdom and philosophy accessible. What will change in the next 6 to 12 months is that the complete content will transition to CC-BY 4.0. The plan is also that the development is community driven, user who engage earn voting power to vote for the next features.

kuerbel a day ago

I like it. Is there any chance you could add Hermann Hesse?

  • micstradev a day ago

    Thank you. Hesse would be a great fit, especially as our nonprofit is based in Germany. We plan to add more figures in the future, but the plan is to let the community decide which gets added next.

heikkilevanto a day ago

Interesting idea. But why audio? I can't be the only one who prefers to read text.

  • micstradev 20 hours ago

    You are not the only one and we fully support text for all modes and features. For the conversations voice is turned on by default, but you can quickly switch it off in the settings. For the pre-created content we try to create a nice reading experience, see the tour in the repo. Stories, councils and prism discussions show the full text in sync, so you can just mute it and read.

stogot a day ago

How do you apply the Kolb cycle?

  • micstradev 20 hours ago

    Good question. For Kolb it is loosely, not strictly. We have 4 modes. Story is the experience part in which the user lives through the life as a narrated episode. Wisdom is the reflection, you talk about the teaching with the figure. Then prism, the same teaching from the perspective of 4 figures, is the conceptualization. Quest is the experimentation. We tried to implement the experimentation best possible but that is also the limit of an app, as this can only truly happen in life and therefore, we like the user to outgrow the app. We have in the modal in which the teachings are presented in detail also a practice part, in which we give some exercises, but we see it as not in the scope of the app, as it would be too much. Maybe something we can implement in a better way in the future.