{"id":13686742,"url":"https://github.com/fiatjaf/rel","last_synced_at":"2025-09-25T04:32:17.302Z","repository":{"id":64973533,"uuid":"96373974","full_name":"fiatjaf/rel","owner":"fiatjaf","description":"command line tool for managing personal graphs of anything and writing them to dot","archived":false,"fork":false,"pushed_at":"2020-05-15T15:30:50.000Z","size":604,"stargazers_count":57,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-12T13:21:27.787Z","etag":null,"topics":["cli","dot","files","graph","graphviz","local","yaml"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fiatjaf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-06T01:05:56.000Z","updated_at":"2024-05-21T13:12:34.000Z","dependencies_parsed_at":"2023-01-05T04:24:52.293Z","dependency_job_id":null,"html_url":"https://github.com/fiatjaf/rel","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Frel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Frel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Frel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fiatjaf%2Frel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fiatjaf","download_url":"https://codeload.github.com/fiatjaf/rel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234152721,"owners_count":18787675,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","dot","files","graph","graphviz","local","yaml"],"created_at":"2024-08-02T15:00:39.269Z","updated_at":"2025-09-25T04:32:16.927Z","avatar_url":"https://github.com/fiatjaf.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# rel\n\na command line utility to create and manage personal graphs, then write them to dot and make images with graphviz.\n\n![](screencast.gif)\n\n## install\n\nBuilds for all systems are available at https://gobuilder.me/github.com/fiatjaf/rel\n\nor you can `go get github.com/fiatjaf/rel`\n\n## how it works\n\n`rel` is basically a file editor. On every run it will read all YAML files in the current directory and use data found on them to build an internal graph representation. When you tell it to add a node it will just create a new YAML file, when you tell it to add a relationship (relationships are called \"links\", by the way) it will just specify these relationships in the YAML files of the related nodes.\n\nIf you want to modify a file's name or add custom metadata, you can just edit the node file (just don't modify the ids). This means you can also save your graph to `git` or do anything else you can do with files.\n\n## usage\n\n* **rel add \u003cnode name\u003e** adds a node\n* **rel print** shows a prompt with all node names available to tab/autocomplete, then outputs the selected node file contents.\n* **rel edit** does the same as `rel print`, but opens an editor for you to directly edit the node file.\n* **rel link [--neutral] \u003crelationship kind\u003e** opens a \"from\", then a \"to\" prompts from which you can search existing nodes or add new ones, then creates a relationship \u003cfrom\u003e-\u003e\u003cto\u003e with the specified `\u003ckind\u003e`. `--neutral` means the relationship is not directed.\n* **rel unlink** opens a prompt with all relationships available, so you can delete some.\n* **rel [--json] nodes** lists all nodes sorted by name, `--json` makes it output a JSON array, useful for piping to [jq](https://stedolan.github.io/jq/manual/) and doing advanced filtering.\n* **rel [--json] links** lists all relationships.\n* **rel dot** outputs a [dot](http://www.graphviz.org/content/dot-language) representation of the graph.\n* **rel template --template \u003cfile\u003e** renders the given [Go template](https://golang.org/pkg/text/template/) with the data from the graph.\n\n## use cases\n\n * family trees\n * ?\n\n## this repository traffic statistics\n\n[![](https://ght.trackingco.de/fiatjaf/rel)](https://ght.trackingco.de/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiatjaf%2Frel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffiatjaf%2Frel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffiatjaf%2Frel/lists"}