{"id":34848372,"url":"https://github.com/shelltime/cli","last_synced_at":"2026-05-16T20:01:38.405Z","repository":{"id":257876650,"uuid":"866583734","full_name":"shelltime/cli","owner":"shelltime","description":"the foundation cli of ShellTime","archived":false,"fork":false,"pushed_at":"2026-04-06T15:27:34.000Z","size":1239,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-06T15:39:42.088Z","etag":null,"topics":["shell"],"latest_commit_sha":null,"homepage":"https://shelltime.xyz","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shelltime.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-10-02T14:19:11.000Z","updated_at":"2026-04-06T15:13:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"8d66d2aa-aa46-4787-bfb7-11d52a37a26f","html_url":"https://github.com/shelltime/cli","commit_stats":null,"previous_names":["malamtime/cli","shelltime/cli"],"tags_count":128,"template":false,"template_full_name":null,"purl":"pkg:github/shelltime/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shelltime%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shelltime%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shelltime%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shelltime%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shelltime","download_url":"https://codeload.github.com/shelltime/cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shelltime%2Fcli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31479007,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T14:34:32.243Z","status":"ssl_error","status_checked_at":"2026-04-06T14:34:31.723Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["shell"],"created_at":"2025-12-25T18:57:33.579Z","updated_at":"2026-05-16T20:01:38.391Z","avatar_url":"https://github.com/shelltime.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ShellTime CLI\n\n[![codecov](https://codecov.io/gh/shelltime/cli/graph/badge.svg?token=N09WIJHNI2)](https://codecov.io/gh/shelltime/cli)\n[![shelltime](https://api.shelltime.xyz/badge/AnnatarHe/count)](https://shelltime.xyz/users/AnnatarHe)\n\nShellTime is a CLI and background daemon for tracking shell activity, syncing command history, and wiring AI coding tools into a shared telemetry stream. The public product and hosted service are ShellTime at [shelltime.xyz](https://shelltime.xyz).\n\nThe Go module path is `github.com/malamtime/cli`. That naming mismatch is intentional in this repo today; use `ShellTime` for product-facing docs and `github.com/malamtime/cli` for imports and module references.\n\n## Install\n\n### Homebrew (macOS and Linux)\n\n```bash\nbrew install shelltime/tap/shelltime\n```\n\n### curl installer\n\n```bash\ncurl -sSL https://shelltime.xyz/i | bash\n```\n\n## Quick Start\n\nThe fastest setup path is:\n\n```bash\nshelltime init\n```\n\n`shelltime init` authenticates the CLI, installs shell hooks, installs the daemon, and attempts to configure Claude Code and Codex OTEL integration.\n\nIf you prefer the manual flow:\n\n```bash\nshelltime auth\nshelltime hooks install\nshelltime daemon install\nshelltime cc install\nshelltime codex install\n```\n\n## What ShellTime Does\n\n- Tracks shell commands locally with masking and exclusion support.\n- Syncs command history to ShellTime for search and analysis.\n- Runs a background daemon for low-latency, non-blocking sync.\n- Integrates with Claude Code and OpenAI Codex through OTEL forwarding.\n- Shows live Claude Code statusline data for cost, quota, time, and context.\n- Syncs supported dotfiles to and from the ShellTime service.\n\n## Command Overview\n\n### Core setup and auth\n\n| Command | Description |\n|---------|-------------|\n| `shelltime init` | Bootstrap auth, hooks, daemon, and AI-code integrations |\n| `shelltime auth` | Authenticate with `shelltime.xyz` |\n| `shelltime doctor` | Check installation and environment health |\n| `shelltime web` | Open the ShellTime dashboard in a browser |\n\n### Tracking and sync\n\n| Command | Description |\n|---------|-------------|\n| `shelltime track` | Record a shell command event |\n| `shelltime sync` | Manually sync pending local data |\n| `shelltime ls` | List locally saved commands |\n| `shelltime gc` | Clean internal storage and logs |\n| `shelltime rg \"pattern\"` | Search synced command history |\n\n### AI helpers and integrations\n\n| Command | Description |\n|---------|-------------|\n| `shelltime query \"prompt\"` | Ask AI for a suggested shell command |\n| `shelltime q \"prompt\"` | Alias for `shelltime query` |\n| `shelltime cc install` | Install Claude Code OTEL shell configuration |\n| `shelltime cc uninstall` | Remove Claude Code OTEL shell configuration |\n| `shelltime cc statusline` | Emit statusline JSON for Claude Code |\n| `shelltime codex install` | Add ShellTime OTEL config to `~/.codex/config.toml` |\n| `shelltime codex uninstall` | Remove ShellTime OTEL config from `~/.codex/config.toml` |\n\n### Environment helpers\n\n| Command | Description |\n|---------|-------------|\n| `shelltime hooks install` | Install shell hooks |\n| `shelltime hooks uninstall` | Remove shell hooks |\n| `shelltime daemon install` | Install the ShellTime daemon service |\n| `shelltime daemon status` | Check daemon status |\n| `shelltime daemon reinstall` | Reinstall the daemon service |\n| `shelltime daemon uninstall` | Remove the daemon service |\n| `shelltime alias import` | Import aliases from shell config files |\n| `shelltime config view` | Show the merged current configuration |\n| `shelltime schema` | Generate JSON schema for config autocompletion |\n| `shelltime ios dl` | Open the ShellTime iOS App Store page |\n\n### Dotfiles\n\n| Command | Description |\n|---------|-------------|\n| `shelltime dotfiles push` | Push supported dotfiles to the server |\n| `shelltime dotfiles pull` | Pull supported dotfiles to local config |\n\n## Configuration\n\nShellTime stores data under `~/.shelltime/`.\n\n- Main config: `~/.shelltime/config.yaml`\n- Local overrides: `~/.shelltime/config.local.yaml`\n- Also supported: `config.yml`, `config.toml`, `config.local.yml`, `config.local.toml`\n- Generated schema: `~/.shelltime/config-schema.json`\n\nMinimal example:\n\n```yaml\ntoken: \"your-api-token\"\nflushCount: 10\ngcTime: 14\ndataMasking: true\n\nexclude:\n  - \".*password.*\"\n  - \"^export .*\"\n```\n\nFor the full configuration surface, defaults, OTEL settings, and AI options, see [docs/CONFIG.md](docs/CONFIG.md).\n\n## Daemon Mode\n\nThe daemon keeps tracking fast by buffering and syncing in the background.\n\n| Mode | Latency | Network Blocking |\n|------|---------|------------------|\n| Direct | ~100ms+ | Yes |\n| Daemon | \u003c8ms | No |\n\nUse daemon mode if you want lower shell latency, retry handling, and background processing for sync and OTEL events.\n\n## Claude Code Statusline\n\nShellTime can provide a live statusline for [Claude Code](https://code.claude.com/docs/en/statusline).\n\nAdd this to `~/.claude/settings.json`:\n\n```json\n{\n  \"statusLine\": {\n    \"type\": \"command\",\n    \"command\": \"shelltime cc statusline\"\n  }\n}\n```\n\nExample output:\n\n```text\n🌿 main* | 🤖 Opus | 💰 $0.12 | 📊 $3.45 | 🚦 5h:23% 7d:12% | ⏱️ 5m30s | 📈 45%\n```\n\nFor formatting details and platform notes, see [docs/CC_STATUSLINE.md](docs/CC_STATUSLINE.md).\n\n## Security and Privacy\n\n- Data masking can redact sensitive command content before upload.\n- Exclusion patterns let you skip matching commands entirely.\n- Optional end-to-end encryption is available for supported flows.\n- Local config overrides can keep sensitive values out of the primary config file.\n\n## Development\n\nCommon local commands:\n\n```bash\ngo build -o shelltime ./cmd/cli/main.go\ngo build -o shelltime-daemon ./cmd/daemon/main.go\ngo test -timeout 3m -coverprofile=coverage.txt -covermode=atomic ./...\ngo fmt ./...\ngo vet ./...\n```\n\n## Links\n\n- [Configuration Guide](docs/CONFIG.md)\n- [Claude Code Statusline Guide](docs/CC_STATUSLINE.md)\n- [Dashboard](https://shelltime.xyz)\n- [Issues](https://github.com/shelltime/cli/issues)\n\n## License\n\nCopyright (c) 2026 ShellTime Team. All rights reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshelltime%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshelltime%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshelltime%2Fcli/lists"}