A plugin for Obsidian
Arcana is a collection of AI powered tools designed to help you be more creative and productive with your Obsidian vault. Each tool is inspired by a famous historical figure:
- Socrates - Conversation
- Custom Agents - Create Conversation Agents from Templates
- Text to Speech Transcription
- Speech to Text Replies
- Henry Ford - Metadata Markup
- Agatha Christie - Text Generation
- Marco Polo - File Mover
- Richard Feynman - Flashcard Generation
- Charles Darwin - Auto Tagging
- Nostradamus - Note Naming
- OpenAI API key required - set in settings.
- It is highly recommended that you use the GPT4 API instead of the GPT3.5.
- Most tools are invoked using the command palette and searching either
Arcana
or the person's name. - Some tools add a view in the sidebar to interact with.
The word arcanum (pluralized as "arcana") came from Latin arcanus, meaning "secret," and entered English as the Dark Ages gave way to the Renaissance. It was often used in reference to the mysteries of the physical and spiritual worlds, subjects of heavy scrutiny and rethinking at the time.
The Socratic Method with Socrates
- Exchange in dialogue with Socrates.
- Ask questions specific to the note currently open.
- Use OpenAI's Whisper Text to Speech transcription. (Toggled with
Alt+R
hotkey) - Use OpenAI's Speech to Text for AI replies.
You can create new agents like Socrates that are specialized for your own use cases.
For example, bring Aristotle, the teacher of Alexander the Greater, to life by using Mr Ranedeer's AI Tutor Prompt as the initial message.
To create a new agent, add a new file to the Conversation Agent Folder
specified in settings.
- The agent's name is the name of the file. Names must be unique and cannot be the same as Socrates
- The agent's initial message is the body of the file.
- For additional agent settings, you can add the following fields to the file's YAML frontmatter:
Setting ID | Setting Type | Description |
---|---|---|
arcana-agent-emoji |
Emoji | The emoji the agent will use for the conversation |
arcana-user-emoji |
Emoji | The emoji the user will use for the conversation |
arcana-auto-send-transcription |
Boolean | Whether to send a transcribed message immediately after recording |
arcana-memory-size |
Whole number greater than or equal to 0 | The number of previous messages for the agent to remember when answering your request (exclusing the prior message) |
arcana-tts-voice |
'alloy', 'echo', 'fable', 'onyx', 'nova' or 'shimmer' | The OpenAI Voice preset to use |
arcana-tts-rate |
Number between '0.25' to '4' | The speaking speed multiplier |
This website provides some good prompts for making agents.
In a file called Aristotle.md
---
arcana-user-emoji: 🧐
arcana-agent-emoji: 🗿
aracana-auto-send-transcription: true
---
I want you to act like Aristotle.
I want you to respond and answer like Aristotle using the tone, manner and vocabulary Aristotle would use.
Do not write any explanations.
Only answer like Aristotle. You must know all of the knowledge of Aristotle.
Frontmatter Metadata Automated Workflows
- Can define a template for updating properties in note's front matter based on user defined instruction
- Can apply template to individual notes or an entire folder
- Set the folder that contains your templates in the settings
- Templates are markdown notes with the following format: - Each property rule is a section (header + body) - The header contains the name of the property and optionally the type of the field from:
string
,string[]
,number
,boolean
For example:
# part-of-speech:string
For the word being defined, what is its part of speech? Select from: "verb"|"noun"|"adjective"|"other".
# country-of-origin:string
For the word being defined, what country or region can the word's etymology be traced back to. Give your answer in lower kebab case.
# frequency:number
For the word being defined, give a score from 1 to 10 for how often the word typically is used in modern discourse.
# length:boolean
Is the word longer than 7 characters? Just say true or false without explanation.
- Anywhere in a note, you can ask Agatha to write for you (either by asking a question or giving an instruction)
- She will use your note as a guide.
- You can also highlight text and Agatha will also take that into consideration. (She will write instead at the bottom of the file)
- To cancel your request, press
Esc
.
Suggest New Locations for Notes
- Ask Polo to suggest a new location for a note or all notes within a folder.
- Give rules governing suggestions in settings.
- Can accept and reject suggestions.
Write Flashcards with Feynman
- Will take a note and produce 5 flashcards for you to use.
- Flashcards are capatible with Obsidian-Spaced-Repitition plugin.
- Category is also generated.
Cataloging and Classifying
- Adds up to
Max tags to add
new tags to note - Can request that
Only Existing Tags
be considered. Otherwise, new tags are allowed as well- Can
Exclude Tags
to be considered from vault (likeflashcards/*
). Wild cards allowed. - Can also only show tags that exceed or are equal to
Min Tag Count
to filter uncommon tags.
- Can
- Does not repeat tags used in the note.
- Can set the
New Tag Style
to: None, Kebab, Camel, Snake and Pascal Case. This applies only to tags not already in vault.
Can predict the title of notes
- Takes the content of the note and uses it to give the file a better title.
- Does it in the style of Andy Matuschak's Evergreen notes
Actively Looking for Collaborators If you would like to contribute or collaborate, message me directly on discord @A-F-V (afv_) and we can talk :).
The images were generated using Midjourney