{"id":13583644,"url":"https://github.com/stanford-oval/genie-server","last_synced_at":"2025-04-06T04:12:02.670Z","repository":{"id":39204958,"uuid":"51546530","full_name":"stanford-oval/genie-server","owner":"stanford-oval","description":"The home server version of Almond","archived":false,"fork":false,"pushed_at":"2024-04-14T09:09:09.000Z","size":27619,"stargazers_count":271,"open_issues_count":47,"forks_count":44,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-30T03:05:55.100Z","etag":null,"topics":["hacktoberfest","nlp","raspberrypi","voice"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stanford-oval.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2016-02-11T20:57:41.000Z","updated_at":"2025-03-17T18:47:53.000Z","dependencies_parsed_at":"2024-09-18T23:01:49.114Z","dependency_job_id":"a51d8fd8-1381-4671-87ad-efe3bfd1f086","html_url":"https://github.com/stanford-oval/genie-server","commit_stats":{"total_commits":526,"total_committers":18,"mean_commits":29.22222222222222,"dds":"0.26615969581749055","last_synced_commit":"0c63b723100ad9f875beea1926d1eb22f654fff6"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stanford-oval%2Fgenie-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stanford-oval","download_url":"https://codeload.github.com/stanford-oval/genie-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430872,"owners_count":20937874,"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":["hacktoberfest","nlp","raspberrypi","voice"],"created_at":"2024-08-01T15:03:40.367Z","updated_at":"2025-04-06T04:12:02.538Z","avatar_url":"https://github.com/stanford-oval.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Genie For Home Servers\n\n[![Build Status](https://travis-ci.com/stanford-oval/genie-server.svg?branch=master)](https://travis-ci.com/stanford-oval/genie-server) [![Coverage Status](https://coveralls.io/repos/github/stanford-oval/genie-server/badge.svg?branch=master)](https://coveralls.io/github/stanford-oval/genie-server?branch=master) [![Dependency Status](https://david-dm.org/stanford-oval/genie-server/status.svg)](https://david-dm.org/stanford-oval/genie-server) [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/stanford-oval/genie-server.svg?logo=lgtm\u0026logoWidth=18)](https://lgtm.com/projects/g/stanford-oval/genie-server/context:javascript)\n\n## End User Programmable Virtual Assistants\n\nThis repository contains the standalone version of Genie, the end user programmable\nassistant. It is a single-user version, suitable for running on home servers and\nsmart speakers.\n\nGenie is a research project from the Stanford University Open Virtual Assistant Lab.\nYou can find more information at \u003chttps://oval.cs.stanford.edu\u003e.\n\n## Running Genie standalone\n\nThe recommended way to run Genie is through [podman](https://podman.io/), a replacement for [docker](https://docs.docker.com/install/) that allows\nthe container to run as your regular user (and thus access PulseAudio from your normal session). You can find the installation instructions [here](https://podman.io/getting-started/installation).\nIf you use regular docker rather than podman, audio support might not work.\n\nTo run, use the command:\n```bash\npodman run --name genie -p 3000:3000 \\\n    -v /dev/shm:/dev/shm \\\n    -v $XDG_RUNTIME_DIR/pulse:/run/pulse \\\n    -e PULSE_SERVER=unix:/run/pulse/native \\\n    -v $XDG_CONFIG_HOME/genie-server:/var/lib/genie-server \\\n    --security-opt label=disable \\\n    docker.io/stanfordoval/almond-server\n```\n\nYou can now navigate to [127.0.0.1:3000](http://127.0.0.1:3000) to access Genie, or use your voice with the wake-word \"Hey Genie\".\n\nTo manage the container later, you can use:\n```bash\npodman start genie # start the container again\npodman stop genie # stop the container\npodman logs genie # look at the most recent logs of a running container\n```\n\n## Development setup\n\nTo develop genie-server, you should clone this repository, then install the dependencies with:\n\n```bash\ndnf -y install nodejs gettext make gcc-c++ GraphicsMagick zip unzip pulseaudio-libs-devel # Fedora/RHEL\napt -y install nodejs gettext build-essential make g++ graphicsmagick zip unzip libpulse-dev # Ubuntu/Debian\n```\n\nYou can then build the repository with:\n```\nnpm ci\n```\n\nThis will only install the minimal set of dependencies, and will not install any voice support. To enable voice, you must also install [genie-client-cpp](https://github.com/stanford-oval/genie-client-cpp).\n\nAfter installing the dependencies locally, the server can be started using `npm start`. The server is accessible on port 3000.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanford-oval%2Fgenie-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstanford-oval%2Fgenie-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstanford-oval%2Fgenie-server/lists"}