{"id":30432842,"url":"https://github.com/sftsrv/dejavu","last_synced_at":"2026-06-28T22:31:51.170Z","repository":{"id":310895275,"uuid":"1041608372","full_name":"sftsrv/dejavu","owner":"sftsrv","description":"have the docs? got the docs.","archived":false,"fork":false,"pushed_at":"2026-02-20T08:45:02.000Z","size":75,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-20T12:29:26.720Z","etag":null,"topics":["cli","developer-tools","docs","documentation","real-time","search","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sftsrv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-20T18:34:08.000Z","updated_at":"2026-02-20T08:45:06.000Z","dependencies_parsed_at":"2025-08-20T22:29:59.689Z","dependency_job_id":"4415ce36-4fc3-4fc6-83b6-86df100ec794","html_url":"https://github.com/sftsrv/dejavu","commit_stats":null,"previous_names":["sftsrv/dejavu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sftsrv/dejavu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sftsrv%2Fdejavu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sftsrv%2Fdejavu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sftsrv%2Fdejavu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sftsrv%2Fdejavu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sftsrv","download_url":"https://codeload.github.com/sftsrv/dejavu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sftsrv%2Fdejavu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34906700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","developer-tools","docs","documentation","real-time","search","tui"],"created_at":"2025-08-22T21:36:58.221Z","updated_at":"2026-06-28T22:31:51.165Z","avatar_url":"https://github.com/sftsrv.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Déjà vu\n\nDevelopers don't search for documentation. Just bring it to them instead.\n\n`dejavu` surfaces documentation that may be relevant to your developers alongside the output of your normal CLI commands\n\n![dejavu in action](./images/demo.gif)\n\n## Installation\n\nThe project is still in the early stages of development, at the moment it's only possible to install using `go install`\n\n### `go install`\n\n```sh\ngo install github.com/sftsrv/dejavu@latest\n```\n\n## Usage\n\n\u003e [!NOTE]  \n\u003e Welcome! If you're using this then consider yourself now a bug hunter. Let me know if you find any issues so that we can make this better for everyone!\n\nYou can view overall command help with:\n\n```sh\ndejavu --help\n```\n\n### As a Stream\n\nThe application can be used by piping any other command on which you'd like to surface documentation, for example `cat myfile.txt`:\n\n```sh\ncat myfile.txt | dejavu \u003c...flags\u003e\n```\n\n\u003e [!TIP]\n\u003e Since `dejavu` works with the Stdin stream only, in some cases you may need to merge Stin and Stderr into a single stream so that it can be used as expected, doing will depend on the shell you're using\n\n### As a Command\n\n`dejavu` can also execute the command directly while connecting Stdin to the command's Stdin. This can be done by passing the entire command to run to `dejavu`\n\n```sh\ndejavu -c \"some interactive command\" \u003c...flags\u003e\n```\n\n### As a Query\n\nOr if you just have a message as a string that you'd like to get some matches on - you can run it with:\n\n```sh\ndejavu -q \"my error message\" \u003c...flags\u003e\n```\n\n\u003e This is equivalent to something like `echo \"my error message\" | dejavu` but is a bit less mysterious\n\n## Documentation Structure\n\nEach doc should be a markdown file that contains frontmatter with a `patterns` property which is a list of regular expressions on which the document should be shown:\n\n\u003e Patterns are matched on a single line\n\n```md\n---\n# list of patterns to match for this doc to be shown\npatterns:\n  - \"^MY_ERROR\"\n  - \"BADBAD\"\n# list of tags that apply to this doc\ntags:\n  - error\n  - setup\n# summary to be shown if dejavu is running in `summary` mode\nsummary: This is a bad error\n---\n\n# MY_ERROR or BADBAD Error Handling Doc\n\nThese are common errors that we can see when running some tests,\nthey are triggered if we see output with a line starting with\n`MY_ERROR` or any text containing `BADBAD`\n```\n\n## Configuration\n\n`dejavu` can be configured by using a `dejavu.config.json` file with the following structure:\n\n```json\n{\n  \"docs\": \"./faq\",\n  \"summary\": true,\n  \"tags\": [\n    \"warning\",\n    \"error\"\n  ]\n}\n```\n\n\u003e The config file can also be set with the `--config` flag. And any config values can also be provide or overridden by means of their respective flag\n\nValues from the configuration may also be overidden using the matching command line arguments. These can be found by using `dejavu --help`\n\n\n## Development\n\nBasically, find something to pipe, this can be anything that sends some output, e.g `cat myfile.txt` and pipe that into `go run .`:\n\n```sh\ncat myfile.txt | go run .\n```\n\n## References\n\n- [Examples for using io.Pipe in go](https://www.zupzup.org/io-pipe-go/index.html)\n- [Mastering io.Pipe in go](https://medium.com/@0xgotznit/mastering-io-pipe-in-go-ca8686150b5e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsftsrv%2Fdejavu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsftsrv%2Fdejavu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsftsrv%2Fdejavu/lists"}