{"id":13467663,"url":"https://github.com/charmbracelet/skate","last_synced_at":"2025-05-14T07:08:47.011Z","repository":{"id":37566851,"uuid":"368273035","full_name":"charmbracelet/skate","owner":"charmbracelet","description":"A personal key value store 🛼","archived":false,"fork":false,"pushed_at":"2025-05-12T10:23:07.000Z","size":229,"stargazers_count":1506,"open_issues_count":8,"forks_count":32,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-05-12T11:34:37.434Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","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/charmbracelet.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-05-17T17:43:35.000Z","updated_at":"2025-05-12T10:23:03.000Z","dependencies_parsed_at":"2024-01-07T06:00:33.741Z","dependency_job_id":"638d5075-3707-4cee-b896-4ad10c65b2c1","html_url":"https://github.com/charmbracelet/skate","commit_stats":{"total_commits":120,"total_committers":13,"mean_commits":9.23076923076923,"dds":0.7583333333333333,"last_synced_commit":"f13cfdd66d8ef652bac11ee8ea1a4bfa37f139ed"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fskate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fskate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fskate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/charmbracelet%2Fskate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/charmbracelet","download_url":"https://codeload.github.com/charmbracelet/skate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253732969,"owners_count":21955401,"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"],"created_at":"2024-07-31T15:00:59.039Z","updated_at":"2025-05-14T07:08:46.960Z","avatar_url":"https://github.com/charmbracelet.png","language":"Go","funding_links":[],"categories":["Go","hacktoberfest"],"sub_categories":[],"readme":"# Skate\n\n\u003cp\u003e\n    \u003cimg src=\"https://stuff.charm.sh/skate/skate-header.png?2\" width=\"480\" alt=\"A nice rendering of a roller skate with the words ‘Charm Skate’ next to it\"\u003e\u003cbr\u003e\n    \u003ca href=\"https://github.com/charmbracelet/skate/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/release/charmbracelet/skate.svg\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/charmbracelet/skate/actions\"\u003e\u003cimg src=\"https://github.com/charmbracelet/skate/workflows/build/badge.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nA personal key-value store. 🛼\n\n***\n⚠️ As of v1.0.0 Skate operates locally and no longer syncs to the Charm Cloud. [Read more about why][sunset] and see [the v1.0.0 release notes](https://github.com/charmbracelet/skate/releases/tag/v1.0.0) for a migration guide. The Charm Cloud [sunsets][sunset] on 29 November 2024.\n\n[sunset]: https://github.com/charmbracelet/charm?tab=readme-ov-file#sunsetting-charm-cloud\n***\n\nSkate is simple and powerful. Use it to save and retrieve anything you’d\nlike—even binary data.\n\n```bash\n# Store something (and sync it to the network)\nskate set kitty meow\n\n# Fetch something (from the local cache)\nskate get kitty\n\n# What’s in the store?\nskate list\n\n# Spaces are fine\nskate set \"kitty litter\" \"smells great\"\n\n# You can store binary data, too\nskate set profile-pic \u003c my-cute-pic.jpg\nskate get profile-pic \u003e here-it-is.jpg\n\n# Unicode also works, of course\nskate set 猫咪 喵\nskate get 猫咪\n\n# For more info\nskate --help\n\n# Do creative things with skate list\nskate set penelope marmalade\nskate set christian tacos\nskate set muesli muesli\n\nskate list | xargs -n 2 printf '%s loves %s.\\n'\n```\n\n## Installation\n\nUse a package manager:\n\n```bash\n# macOS or Linux\nbrew tap charmbracelet/tap \u0026\u0026 brew install charmbracelet/tap/skate\n\n# Arch Linux (btw)\npacman -S skate\n\n# Nix\nnix-env -iA nixpkgs.skate\n\n# Debian/Ubuntu\nsudo mkdir -p /etc/apt/keyrings\ncurl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg\necho \"deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *\" | sudo tee /etc/apt/sources.list.d/charm.list\nsudo apt update \u0026\u0026 sudo apt install skate\n\n# Fedora/RHEL\necho '[charm]\nname=Charm\nbaseurl=https://repo.charm.sh/yum/\nenabled=1\ngpgcheck=1\ngpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo\nsudo yum install skate\n```\n\nOr download it:\n\n- [Packages][releases] are available in Debian and RPM formats\n- [Binaries][releases] are available for Linux, macOS, and Windows\n\nOr just install it with `go`:\n\n```bash\ngo install github.com/charmbracelet/skate@latest\n```\n\n[releases]: https://github.com/charmbracelet/skate/releases\n\n## Other Features\n\n### List Filters\n\n```bash\n# list keys only\nskate list -k\n\n# list values only\nskate list -v\n\n# reverse lexicographic order\nskate list -r\n\n# add a custom delimeter between keys and values; default is a tab\nskate list -d \"\\t\"\n\n# show binary values\nskate list -b\n```\n\n### Databases\n\nSometimes you’ll want to separate your data into different databases:\n\n```bash\n# Database are automatically created on demand\nskate set secret-boss-key@work-stuff password123\n\n# Most commands accept a @db argument\nskate set \"office rumor\"@work-stuff \"penelope likes marmalade\"\nskate get \"office rumor\"@work-stuff\nskate list @work-stuff\n\n# Wait, what was that db named?\nskate list-dbs\n```\n\n## Examples\n\nHere are some of our favorite ways to use `skate`.\n\n### Keep secrets out of your scripts\n\n```bash\nskate set gh_token GITHUB_TOKEN\n\n#!/bin/bash\ncurl -su \"$1:$(skate get gh_token)\" \\\n    https://api.github.com/users/$1 \\\n    | jq -r '\"\\(.login) has \\(.total_private_repos) private repos\"'\n```\n\n### Keep passwords in their own database\n\n```bash\nskate set github@password.db PASSWORD\nskate get github@password.db\n```\n\n### Use scripts to manage data\n\n```bash\n#!/bin/bash\nskate set \"$(date)@bookmarks.db\" $1\nskate list @bookmarks.db\n```\n\nWhat do you use `skate` for? [Let us know](mailto:vt100@charm.sh).\n\n## Feedback\n\nWe’d love to hear your thoughts on this project. Feel free to drop us a note!\n\n- [Twitter](https://twitter.com/charmcli)\n- [The Fediverse](https://mastodon.social/@charmcli)\n- [Discord](https://charm.sh/chat)\n\n## License\n\n[MIT](https://github.com/charmbracelet/skate/raw/main/LICENSE)\n\n---\n\nPart of [Charm](https://charm.sh).\n\n\u003ca href=\"https://charm.sh/\"\u003e\u003cimg alt=\"The Charm logo\" src=\"https://stuff.charm.sh/charm-badge.jpg\" width=\"400\"\u003e\u003c/a\u003e\n\nCharm热爱开源 • Charm loves open source\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmbracelet%2Fskate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharmbracelet%2Fskate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharmbracelet%2Fskate/lists"}