https://github.com/roma-glushko/frens
🤝 Build friendships that last.
https://github.com/roma-glushko/frens
cli connections crm dairy family friends friendship golang-application journal journaling network people relationships tags
Last synced: 15 days ago
JSON representation
🤝 Build friendships that last.
- Host: GitHub
- URL: https://github.com/roma-glushko/frens
- Owner: roma-glushko
- License: apache-2.0
- Created: 2025-01-05T15:23:56.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-14T18:04:38.000Z (about 1 month ago)
- Last Synced: 2025-09-14T18:25:18.882Z (about 1 month ago)
- Topics: cli, connections, crm, dairy, family, friends, friendship, golang-application, journal, journaling, network, people, relationships, tags
- Language: Go
- Homepage:
- Size: 566 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Frens
A friendship management & journaling application for introverts and not only.
Build relationships with people that last.`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
```bash
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](https://github.com/roma-glushko/frens/releases).
## Main Concepts

- **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`'s features is the ability to input all data as a free-form text
using a simple and straightforward syntax.### Tags
Tags are one of the common parts of other pieces of information like `Activities`, `Notes`, `Friends` or `Locations`.
Tags can be specified via the `#tag` syntax like this:
```text
#scool #family #university #school:math #school:physics #family-extended
```### Locations
`Locations` can be added like this:
```text
Scranton, USA (aka "The Electric City") :: a great place to live and work #office @Scranton $id:scranton
```Then, you can set location for your `Friends`, `Activities` and `Notes` via the `@location` syntax like this:
```text
@NewYork @LosAngeles @Scranton
```### Friends
Similarly to `Locations`, the basic information about `Friend` can be added using a similar syntax:
```text
Michael Harry Scott (aka "The World's Best Boss"), my Dunder Mifflin boss, is a great friend of mine #office @Scranton
```You can also specify ID of the friend via `$id:friendid` syntax like this:
```text
Michael Harry Scott (aka "The World's Best Boss") $id:mscott, ...
```### Activities & Notes
`Activities` and `Notes` are events that have the same syntax:
```text
yesterday :: Jim put my stuff in jello #office @Scranton
```You can also completely omit the date, so it will be set to the current date:
```text
Dwight bought a new beet farm #office @Scranton
```## Credits
Inspired by awesome [JacobEvelyn/friends](https://github.com/JacobEvelyn/friends).
Made with ❤️ by [Roman Glushko](https://github.com/roma-glushko).