frens

command module
v0.0.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

README

Frens

Frens

Build relationships with people that last.

Apache-2.0

A friendship management & journaling application for introverts and not only.

frens is a command-line application that helps you to keep track of your relationships with other people you care about.

frens gives you:

  • An organized and systematic way around staying in touch with friends and family.
  • A low-effort way to record and remember big moments in your life.
  • A way to track how your relationships develop over time.

[!NOTE]

🚧 This project is under active development, so some CLI or behaviors may change. 🚧

Features

  • Record your relationships with friends, family, colleagues, and acquaintances using a simple set of concepts like Friends, Locations, Activities, and Notes.
  • A simple journaling language (called frentxt) to simplify the process of recording your thoughts and activities.

Philosophy

  • Simplicity: Should be quick and easy to use. As few concepts as possible to keep in mind. Little to no manual record maintenance.
  • Journaling First: Should focus you on journaling and jotting down your thoughts.
  • Intelligence: Guessing your friends' names, understanding relative dates (e.g. "yesterday", "tomorrow").
  • Privacy & Transparency: All data is stored locally on your machine in TOML file format. You can optionally share it across your laptops via Git.
  • Hackable: Should be possible to use the collected data in automations and scripts.

Installation

MacOS
brew tap roma-glushko/frens https://github.com/roma-glushko/frens
brew install frens
Download Binaries

For other platforms and architectures, you can download frens' binaries right from Github Releases.

Main Concepts

Diagram

  • Friends: People you know and care about. Can be family, colleagues, or acquaintances.
  • Locations: Places where you and your friends live, work, or spend time together.
  • Activities: Things you do with your friends, like going to the movies, having dinner, or attending events.
  • Notes: Insights, preferences, deep meaning information with long-term value about your friends, activities, or locations.

Language

One of the major fren' features is the ability to input all data as a free-form text using a simple and straightforward syntax.

Tags

Tags are a common element across all entities like Friends, Locations, Activities, Notes, Contacts, and Wishlist items.

Tags can be specified via the #tag syntax:

#family #university #work:engineering #hobby-photography

Tags support namespaces with colons and hyphens for multi-word tags.

Properties

Properties allow you to set specific attributes on entities using the $property:value syntax:

$id:custom-id $price:$50 $cal:hebrew
Locations

Locations represent places where you and your friends live, work, or spend time together:

Scranton, USA (aka "The Electric City") :: a great place to live and work #office $id:scranton
Berlin, Germany :: vibrant tech hub with amazing coffee culture #europe #tech
Tokyo (aka "東京") :: visited during cherry blossom season #travel #asia

Reference locations in other entities via the @location syntax:

@NewYork @Berlin @Tokyo
Friends

Basic information about a Friend can be added using a similar syntax:

Michael Harry Scott (aka "The World's Best Boss") :: my Dunder Mifflin boss #office @Scranton $id:mscott
Sarah Chen (aka "Saz", "SC") :: college roommate, now works at Google #college #tech @SanFrancisco
Hans Mueller :: met at a conference in Berlin, shares my love for hiking #conference #outdoor @Berlin
Contacts

Contacts store contact information for your friends with support for various platforms:

email:sarah@example.com phone:+1234567890 #work
tg:@telegram_user gh:roma-glushko ig:@photography_account #personal

Supported contact types and their aliases:

  • email / mail - email addresses
  • phone / tel - phone numbers
  • telegram / tg - Telegram handles
  • whatsapp / wa - WhatsApp contacts
  • twitter / x - Twitter/X handles
  • linkedin / li - LinkedIn profiles
  • github / gh - GitHub profiles
  • instagram / ig - Instagram handles
  • facebook / fb - Facebook profiles
  • discord, slack, signal - messaging platforms

Auto-detection works for common formats:

john@company.com +48123456789 #work
Dates

Dates track important dates for your friends like birthdays and anniversaries:

January 15 :: Birthday #birthday
March 10, 2020 :: Wedding anniversary #anniversary #celebration
15 Nisan :: Passover celebration #holiday $cal:hebrew

Supported calendars: gregorian (default), hebrew.

Wishlist

Wishlist items help you track gift ideas for your friends:

Kindle Paperwhite https://amazon.com/kindle $price:$140 #reading #gift-ideas
Specialty coffee subscription #coffee #monthly
Concert tickets for Coldplay @Berlin $price:$120 #music #experience
Activities & Notes

Activities and Notes are events that share the same syntax:

yesterday :: Jim put my stuff in jello #office @Scranton
2024-12-25 :: Christmas dinner with the whole family #family #holiday @Home
last week :: Helped Sarah move to her new apartment #friends @SanFrancisco

You can omit the date, and it will default to the current date:

Grabbed coffee and caught up on life #casual @Berlin

Relative dates like "yesterday", "last week", "2 days ago" are supported.

Credits

Inspired by awesome JacobEvelyn/friends.

Made with ❤️ by Roman Glushko.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL