# Omnia

`Omnia` is a tool to provide a common platform for everything. It is a tool
build to support note-taking, handling personal relationships, project
development, todos, research, up-keep of external work, and much more.

This may seem like a large list of tasks, and it is. However, Omnia is designed
to be opinionated, and provide a minimalistic approach to each of the above.
Omnia is not a general purpose tool, text editing tool, it is designed to fit
into your existing toolstack, with its opinionated project structure, and
workflow.

Alternatives to this tool:

- Notion: with second brain templates etc.
- Obsidian: with zen garden templates etc.

Omnia is a commandline tool, which functions using a terminal ui, or pure cli
commands. Called `interactive` for the former, and `prompt` for the latter. It
is designed to work with your favorite EDITOR, to keep the scope of this project
reasonable, `Omnia` doesn't try to bundle with an editor. Instead it will
respect your `OMNIA_EDITOR`, or `EDITOR` environment variables, and launch the
files using those.

## How to use `Omnia`

To launch the fully interactive view, simply type `omnia` in your shell of
choice. This will boot up the TUI, press `?` for help and it will show a brief,
menu as well as the most common keybinds.

Following each command will be shown separately, these will be available in the
UI as well, just follow along in the menu, or use the command key `:` to open
the command palette.

### Commands

In Omnia everything is designed to use Markdown files, even the templates are
markdown files, though with some special syntax to make prompting easier. This
also means that you can open your local ~/omnia directory using your favorite
editor, as everything is just markdown files.

Projects are the cornerstone of how Omnia functions. Every navigation item is a
project, be they todo lists, research items, external sites etc. Projects can be
nested, and projects can contain pages. External apps can be configured as a
project, and will need a certain interface to be functional.

This means that when you type a command:

`omnia --help`, each subcommand will be a project, some keywords are reserved:
(todo, inbox, project, etc.), each project decides which commands are available,
and this is fully customizeable, through our plugin system. Though note that we
ship the default view with a set of preconfigured plugins:

- todo
- inbox
- projects
- areas

Typing each of the commands above will open the fully interactive tui:
`omnia todo`. Todo has a set of commands available to it: `omnia todo create` as
an example. This will open the prompt view, which will interactive ask the user
to fill out a form. These questions will also be available using commandline
flags as well.

### Views

Some of the projects are built as views, this may be a list of recent
notifications on github, apis of interest, metrics and whatnot.

## Remote first

Omnia will sync remote first in nearly all cases. The only exception is in
progress forms and whatnot. This is to keep complexity down, as well as making
sure Omnia is as easily crossplatform as possible. You should be able to use
`Omnia` from all your terminal capable devices. This sprung out of my own need
for having my notes available everywhere, without having conflicts.
