Packages
fnord
0.4.11
0.9.40
0.9.39
0.9.38
0.9.37
0.9.36
0.9.35
0.9.34
0.9.33
0.9.32
0.9.31
0.9.30
0.9.29
0.9.28
0.9.27
0.9.26
0.9.25
0.9.24
0.9.23
0.9.22
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.99
0.8.98
0.8.97
0.8.96
0.8.95
0.8.94
0.8.93
0.8.92
0.8.91
0.8.90
0.8.89
0.8.88
0.8.87
0.8.86
0.8.85
0.8.84
0.8.83
0.8.82
0.8.81
0.8.80
0.8.79
0.8.78
0.8.77
0.8.76
0.8.75
0.8.74
0.8.73
0.8.72
0.8.71
0.8.70
0.8.69
0.8.68
0.8.67
0.8.66
0.8.65
0.8.64
0.8.63
0.8.62
0.8.61
0.8.60
0.8.59
0.8.58
0.8.57
0.8.56
0.8.55
0.8.54
0.8.53
0.8.52
0.8.51
0.8.50
0.8.49
0.8.48
0.8.47
0.8.46
0.8.45
0.8.44
0.8.43
0.8.42
0.8.41
0.8.40
0.8.39
0.8.38
0.8.37
0.8.36
0.8.35
0.8.34
0.8.33
0.8.32
0.8.31
0.8.30
0.8.29
0.8.27
0.8.26
0.8.25
0.8.24
0.8.23
0.8.22
0.8.21
0.8.20
0.8.19
0.8.18
0.8.17
0.8.16
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.1
0.8.0
0.7.24
0.7.23
0.7.22
0.7.21
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.3
0.7.2
0.7.1
0.7.0
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.44
0.4.43
0.4.42
0.4.41
0.4.40
0.4.39
0.4.38
0.4.37
0.4.36
0.4.35
0.4.34
0.4.33
0.4.32
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.0
AI code archaeology
Current section
Files
Jump to
Current section
Files
README.md
# Fnord[](https://github.com/sysread/fnord/actions/workflows/run-tests.yml)Fnord is a command line tool the builds a searchable database of your files,using AI-generated embeddings to index and search your code base, notes, andother (non-binary) files.## Installation1. Install `elixir` if necessary:```bash# MacOSbrew install elixir# Debian-basedsudo apt-get install elixir```2. Add the mix escript path to your shell's PATH:```bashecho 'export PATH="$HOME/.mix/escripts:$PATH"' >> ~/.bashrcsource ~/.bashrc```3. Install the script:```bashmix escript.install github sysread/fnord```Use the same command to reinstall. It will offer to overwrite the existinginstallation.## Usage### IndexThe first time you run this, especially on a large codebase, it will take awhile to index everything. Subsequent runs will be faster, re-indexing onlythose files which have changed since they were last indexed.```bashfnord index --project foo --dir /path/to/foo```You can **reindex** the project, forcing it to reindex all files:```bashfnord index --project foo --dir /path/to/foo --reindex```You can also watch the project for changes and reindex them as they happenusing [watchman](https://github.com/facebook/watchman). Just be sure to use`--quiet` to suppress interactive output:```bashwatchman-make -p '**/*' --settle 5 --run "fnord index --project $project --dir $project_root --quiet"```...or use the `fnord-watch` script in the [tools directory onGitHub](https://github.com/sysread/fnord/blob/main/tools/fnord-watch).```bashfnord-watch -p foo -d /path/to/foo```### Search```bashfnord search --project foo --query "some search query"```If you want more detail about each file matched:```bashfnord search --project foo --query "some search query" --detail```### AskYou can ask the AI assistant to answer questions about your project:```bashfnord ask foo "how do you run the tests for this project?"# Continue the conversationfnord ask -C foo "how does the test coverage look to you?"# With status messages emitted to stderrfnord ask -C --debug foo "if the test coverage is so amazing then how come my change didn't break any tests?!"# Pipe output to `glow` to render markdownfnord ask foo "summarize the dependencies of this project" | glow```### Miscellaneous- **List projects:** `fnord projects`- **List files in a project:** `fnord files --project foo`- **Show the AI-generated summary of a file:** `fnord summary --project foo --file bar`- **Delete a project:** `fnord delete --project foo`Note that deleting a project only deletes from the index, not the actual files.## TODO- `ask`: read questions from stdin