Home

Awesome

<div align = "center"> <h1><a href="https://github.com/2kabhishek/tdo">tdo</a></h1> <a href="https://github.com/2KAbhishek/tdo/blob/main/LICENSE"> <img alt="License" src="https://img.shields.io/github/license/2kabhishek/tdo?style=flat&color=eee&label="> </a> <a href="https://github.com/2KAbhishek/tdo/graphs/contributors"> <img alt="People" src="https://img.shields.io/github/contributors/2kabhishek/tdo?style=flat&color=ffaaf2&label=People"> </a> <a href="https://github.com/2KAbhishek/tdo/stargazers"> <img alt="Stars" src="https://img.shields.io/github/stars/2kabhishek/tdo?style=flat&color=98c379&label=Stars"></a> <a href="https://github.com/2KAbhishek/tdo/network/members"> <img alt="Forks" src="https://img.shields.io/github/forks/2kabhishek/tdo?style=flat&color=66a8e0&label=Forks"> </a> <a href="https://github.com/2KAbhishek/tdo/watchers"> <img alt="Watches" src="https://img.shields.io/github/watchers/2kabhishek/tdo?style=flat&color=f5d08b&label=Watches"> </a> <a href="https://github.com/2KAbhishek/tdo/pulse"> <img alt="Last Updated" src="https://img.shields.io/github/last-commit/2kabhishek/tdo?style=flat&color=e06c75&label="> </a> <h3>Fast & Simple Note Taking! šŸ“ƒšŸš€</h3> <figure> <img src="images/screenshot.jpg" alt="tdo in action"> <br/> <figcaption>tdo in action</figcaption> </figure> </div>

tdo is a opinionated, command line based note-taking system. Demo video

āœØ Features

āš” Setup

šŸ“‹ Requirements

šŸ’» Installation

git clone https://github.com/2kabhishek/tdo
cd tdo
./install.sh

šŸ“¦ Environment Variables

šŸš Manual Installation

If you want to customize the setup or are facing issues with installation, you can set up tdo manually.

Change these commands according to your needs.

# Link tdo to a directory that's in PATH (~/.local/bin here)
ln -sfnv "$PWD/tdo.sh" ~/.local/bin/tdo
# Create a notes dir if not already present
mkdir -p $HOME/Projects/Notes
# Add the NOTES_DIR env var to your shell config ~/.bashrc, ~/.zshrc etc
echo "NOTES_DIR=$HOME/Projects/Notes" >> ~/.zshrc
# Add sample templates to your NOTES_DIR
cp -irv templates $NOTES_DIR
# Reload shell config
source ~/.zshrc

šŸ’¾ Git Integration

If you want to sync your notes across devices, you can set up a git repo on the $NOTES_DIR and add GitHub/GitLab as remote.

cd $NOTES_DIR
git init
git add .
git commit -m 'init: notes'
git remote add origin <your-remote-git-url>
git push origin main

tdo will automatically commit every change with a timestamp like 03 Feb 11:33 as commit message.

šŸš€ Usage

If you use Neovim, I highly recommend using tdo.nvim, it seamlessly integrates tdo and nvim and adds some useful features on top.

Run tdo h to get help info on the command line

šŸ“ Dir Structure

tdo expects an opinionated directory structure to function.

ā”œā”€ā”€ todos
ā”‚Ā Ā  ā””ā”€ā”€ 2023
ā”‚Ā Ā      ā””ā”€ā”€ 11
ā”‚Ā Ā       Ā Ā  ā””ā”€ā”€ 2023-11-29.md
ā”œā”€ā”€ entries
ā”‚Ā Ā  ā””ā”€ā”€ 2024
ā”‚Ā Ā      ā””ā”€ā”€ 02
ā”‚Ā Ā       Ā Ā  ā””ā”€ā”€ 2024-02-03.md
ā”‚ā”€ā”€ notes
ā”‚Ā Ā  ā””ā”€ā”€ tech
ā”‚Ā Ā   Ā Ā  ā””ā”€ā”€ quit-vim.md
ā”‚Ā Ā   Ā Ā  ā””ā”€ā”€ arch-btw.md
ā””ā”€ā”€ templates
 Ā Ā  ā”œā”€ā”€ entry.md
 Ā Ā  ā””ā”€ā”€ note.md
 Ā Ā  ā””ā”€ā”€ todo.md

āš™ļø Configuration

You can configure tdo by either defining environment variables or via a $HOME/.config/tdorc file.

Default Configs

ADD_ENTRY_TIMESTAMP=true
ADD_NEW_NOTE_TIMESTAMP=false
FILE_NAME_AS_TITLE=false
# Reads ## Mon, 12:00 PM
ENTRY_TIMESTAMP_FORMAT="## %a, %I:%M %p"
# Reads ## Fri. Apr 06, 2024 - 06:48 PM
NOTE_TIMESTAMP_FORMAT="## %a. %b %d, %Y - %I:%M %p"

configs defined in tdorc will override corresponding environment variables

šŸ—ļø What's Next

You tell me!

šŸ§‘ā€šŸ’» Behind The Code

šŸŒˆ Inspiration

After trying out every note management system under the sun I had decided on using plain markdown notes powered by nvim2k.

tdo is a spiritual successor and complimentary tool to that, taking the same principles and making it more accessible and simple.

šŸ” More CLI Tools

šŸ§° Tooling

<hr> <div align="center">

<strong>ā­ hit the star button if you found this useful ā­</strong><br>

<a href="https://github.com/2KAbhishek/tdo">Source</a> | <a href="https://2kabhishek.github.io/blog" target="_blank">Blog </a> | <a href="https://twitter.com/2kabhishek" target="_blank">Twitter </a> | <a href="https://linkedin.com/in/2kabhishek" target="_blank">LinkedIn </a> | <a href="https://2kabhishek.github.io/links" target="_blank">More Links </a> | <a href="https://2kabhishek.github.io/projects" target="_blank">Other Projects </a>

</div>