{"id":50812380,"url":"https://github.com/viggomeesters/obsidian-git-viewer","last_synced_at":"2026-06-13T06:05:59.494Z","repository":{"id":363345844,"uuid":"1262651689","full_name":"viggomeesters/obsidian-git-viewer","owner":"viggomeesters","description":"Lightweight read-only Git status viewer for Obsidian.","archived":false,"fork":false,"pushed_at":"2026-06-08T14:00:28.000Z","size":61,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T15:10:01.783Z","etag":null,"topics":["git","git-status","obsidian","obsidian-plugin","typescript","viewer"],"latest_commit_sha":null,"homepage":"https://github.com/viggomeesters/obsidian-git-viewer#readme","language":"TypeScript","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/viggomeesters.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-08T07:32:22.000Z","updated_at":"2026-06-08T14:00:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/viggomeesters/obsidian-git-viewer","commit_stats":null,"previous_names":["viggomeesters/obsidian-git-viewer"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/viggomeesters/obsidian-git-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viggomeesters%2Fobsidian-git-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viggomeesters%2Fobsidian-git-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viggomeesters%2Fobsidian-git-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viggomeesters%2Fobsidian-git-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viggomeesters","download_url":"https://codeload.github.com/viggomeesters/obsidian-git-viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viggomeesters%2Fobsidian-git-viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34273822,"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-13T02:00:06.617Z","response_time":62,"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":["git","git-status","obsidian","obsidian-plugin","typescript","viewer"],"created_at":"2026-06-13T06:05:58.986Z","updated_at":"2026-06-13T06:05:59.485Z","avatar_url":"https://github.com/viggomeesters.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/hero.svg\" alt=\"Git Viewer for Obsidian\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/viggomeesters/obsidian-git-viewer/releases/latest\"\u003e\u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/viggomeesters/obsidian-git-viewer?style=flat-square\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"MIT license\" src=\"https://img.shields.io/badge/license-MIT-green?style=flat-square\"\u003e\u003c/a\u003e\n  \u003cimg alt=\"Obsidian 1.8.7+\" src=\"https://img.shields.io/badge/Obsidian-1.8.7%2B-7c3aed?style=flat-square\"\u003e\n  \u003cimg alt=\"No push\" src=\"https://img.shields.io/badge/push-not%20included-0f766e?style=flat-square\"\u003e\n\u003c/p\u003e\n\n# Git Viewer\n\nGit Viewer is a lightweight Git status, history, and selected-file commit tool for Obsidian. It is built for people who want to stay inside Obsidian, see exactly which vault files changed, open those files, make intentional commits, and inspect recent commit history without launching a heavier Git client or Visual Studio Code.\n\n![Git Viewer preview](assets/screenshot.svg)\n\n## Features\n\n- Shows Git status in a compact Obsidian sidebar view.\n- Provides compact **Changes** and **History** tabs.\n- Groups files into Staged, Changed, Untracked, Deleted, Renamed, and Conflicted.\n- Opens files inside Obsidian when they are inside the current vault.\n- Omits hidden/internal Git paths that Obsidian cannot open as vault files.\n- Commits only explicitly selected files with a required commit message.\n- Uses a temporary Git index for commits so unrelated staged or unstaged files are not included.\n- Shows the latest 50 commits with short hash, subject, author, and timestamp.\n- Shows read-only commit details with full hash, message body, and changed files.\n- Uses local Git porcelain output through the `git` CLI.\n- Refreshes manually and after vault file events.\n- Makes no network requests from plugin code.\n\n## Non-goals\n\nGit Viewer deliberately does **not** include:\n\n- pull\n- clone\n- fetch\n- merge\n- rebase\n- branch create/switch/delete\n- force push\n- push\n- stage/unstage\n- discard/reset/delete\n- conflict resolution\n- automatic sync\n\nThe plugin is a status and history viewer with one narrow write action: commit selected files. It does not sync, pull, push, or manage branches.\n\n## Roadmap\n\n### Commit selected files\n\nCommit support is intentionally scoped and explicit:\n\n- select files with checkboxes\n- enter a commit message\n- preview exactly which files will be committed\n- commit through a temporary index or equivalent restore-safe strategy\n- never accidentally include unrelated staged or unstaged files\n\nGit Viewer does not use a naive `git add \u003cfiles\u003e \u0026\u0026 git commit` flow, because that can disturb existing staged state in busy vaults.\n\n## Installation\n\n### Community plugin directory\n\nGit Viewer is ready for submission to the Obsidian Community plugin directory. Once accepted, it can be installed from **Settings -\u003e Community plugins -\u003e Browse** inside Obsidian.\n\n### Manual installation\n\nUntil the community directory submission is accepted:\n\n1. Download `main.js`, `manifest.json`, and `styles.css` from the [latest release](https://github.com/viggomeesters/obsidian-git-viewer/releases/latest).\n2. Create this folder in your vault: `.obsidian/plugins/git-viewer/`.\n3. Put the downloaded files in that folder.\n4. Reload Obsidian.\n5. Enable **Git Viewer** in **Settings -\u003e Community plugins**.\n\n### BRAT installation\n\nFor beta testing, install the plugin with [BRAT](https://github.com/TfTHacker/obsidian42-brat) using this repository URL:\n\n```text\nhttps://github.com/viggomeesters/obsidian-git-viewer\n```\n\n## Usage\n\nOpen the command palette and run **Git Viewer: Open**, or click the Git Viewer ribbon icon. The view opens in the right sidebar.\n\nUse **Changes** to review and commit current working-tree changes. Use **History** to inspect recent local commits.\n\nClick a file path to open it in Obsidian. Deleted files and files outside the current vault cannot be opened.\n\nTo commit:\n\n1. Select one or more visible status rows, or use **Select all**.\n2. Write a commit message.\n3. Click **Commit selected**.\n\nThe commit includes only the selected paths. Unselected staged files remain staged.\n\nAfter a commit, Git Viewer shows a **Last commit** banner with a **View in History** shortcut. History remains read-only and uses local Git data only.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm run lint\nnpx tsc --noEmit\nnpm test\n```\n\nFor local development, copy or symlink this repository into `.obsidian/plugins/git-viewer/` inside a Git-backed Obsidian test vault.\n\n## Release process\n\nObsidian installs community plugin files from GitHub releases. For each release:\n\n1. Update `manifest.json`, `package.json`, and `versions.json` when the plugin version or minimum Obsidian version changes.\n2. Run `npm install`, `npm run build`, `npm run lint`, `npx tsc --noEmit`, and `npm test`.\n3. Create a GitHub release whose tag exactly matches `manifest.json.version`.\n4. Attach `main.js`, `manifest.json`, and `styles.css` as release assets.\n\nThe repository includes a GitHub Actions release workflow with artifact attestation support. If GitHub Actions is disabled for the owner account, manual releases are still usable for Obsidian, but the Community automated review may show a recommendation about missing artifact attestations.\n\n## Community directory submission\n\nThe repository is prepared for Obsidian Community plugin submission. The remaining submission step must be completed by the repository owner in the Obsidian Community site because it requires signing in, linking GitHub, and confirming the developer policies/support commitment.\n\nSubmit this repository URL:\n\n```text\nhttps://github.com/viggomeesters/obsidian-git-viewer\n```\n\nThe current release is ready for review:\n\n- root `README.md`, `LICENSE`, and `manifest.json` exist\n- `manifest.json.id` is `git-viewer`\n- `manifest.json.version` is `0.3.1`\n- `versions.json` maps `0.3.1` to Obsidian `1.8.7`\n- GitHub release `0.3.1` should include `main.js`, `manifest.json`, and `styles.css`\n\nOfficial references:\n\n- [Submit your plugin](https://docs.obsidian.md/Plugins/Releasing/Submit%20your%20plugin)\n- [Manifest](https://docs.obsidian.md/Reference/Manifest)\n- [Obsidian releases repository](https://github.com/obsidianmd/obsidian-releases)\n\n## Security and privacy\n\nGit Viewer runs local `git` commands against the current vault or repository. It does not make network requests and does not use clipboard APIs.\n\nHistory is read-only and uses local `git log` and `git show --name-status`. The only write action is **Commit selected**. It creates a commit from explicitly selected paths through a temporary Git index, then refreshes the selected paths in the real index after the branch is advanced. It does not pull, push, clone, fetch, merge, rebase, discard, reset, or manage branches.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviggomeesters%2Fobsidian-git-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviggomeesters%2Fobsidian-git-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviggomeesters%2Fobsidian-git-viewer/lists"}