Skip to content

Commit 2d8efc8

Browse files
committed
Add GitHub Pages documentation site with Jekyll and just-the-docs theme
1 parent 1536178 commit 2d8efc8

File tree

10 files changed

+564
-495
lines changed

10 files changed

+564
-495
lines changed

README.md

Lines changed: 16 additions & 360 deletions
Original file line numberDiff line numberDiff line change
@@ -15,40 +15,11 @@ A neofetch-style CLI tool for GitHub, GitLab, Gitea, Forgejo, Codeberg, and Sour
1515

1616
<img width="3441" height="1441" alt="2025-10-20-143110_hyprshot" src="https://github.com/user-attachments/assets/ee31ebe3-257f-4aff-994e-fffd47b48fa1" />
1717

18-
## Features
19-
20-
- Neofetch-style display with ASCII art
21-
- Comprehensive statistics from multiple git hosting platforms
22-
- Smart SQLite-based caching system for faster subsequent runs
23-
- Cross-platform support (macOS and Linux)
24-
- First-run initialization with interactive provider selection
25-
- Customize contribution characters, hide/show sections, control display elements
26-
- Simulate contribution-graph pixel art from text using `--text "Your Text"` or predefined shapes using `--shape kitty` (visual simulation only — does not create commits). This feature was inspired by and borrows the visual approach from gelstudios/gitfiti.
27-
- Flags for advanced configuration (e.g., `--no-date`, `--graph-only`, `--custom-box`, `--width`, `--height`) see full list below with `gitfetch --help`
28-
29-
## Supported Platforms
30-
31-
- **GitHub** - Uses GitHub CLI (gh) for authentication
32-
- **GitLab** - Uses GitLab CLI (glab) for authentication
33-
- **Gitea/Forgejo/Codeberg** - Uses personal access tokens
34-
- **Sourcehut** - Uses personal access tokens
18+
## Documentation
3519

36-
## Installation
20+
📖 [Full Documentation](https://matars.github.io/gitfetch/)
3721

38-
`gitfetch` can be installed without any prerequisites. During first-run setup, you'll be guided to install and authenticate with the necessary CLI tools or provide access tokens for your chosen git hosting platform.
39-
40-
## First-run Setup
41-
42-
When you run `gitfetch` for the first time, you'll be prompted to:
43-
44-
1. **Choose your git hosting provider** (GitHub, GitLab, Gitea/Forgejo/Codeberg, or Sourcehut)
45-
2. **Install required CLI tools** (if using GitHub or GitLab)
46-
3. **Authenticate** with your chosen platform
47-
4. **Configure access tokens** (if using Gitea/Forgejo/Codeberg or Sourcehut)
48-
49-
The setup process will provide helpful error messages and installation instructions if anything is missing.
50-
51-
## Installing `gitfetch`
22+
## Quick Install
5223

5324
### macOS (Homebrew)
5425

@@ -63,341 +34,26 @@ brew install gitfetch
6334
yay -S gitfetch-python
6435
```
6536

66-
Or with other AUR helpers:
67-
68-
```bash
69-
paru -S gitfetch-python
70-
trizen -S gitfetch-python
71-
```
72-
73-
Or manual build:
74-
75-
```bash
76-
git clone https://aur.archlinux.org/gitfetch-python.git
77-
cd gitfetch-python
78-
makepkg -si
79-
```
80-
81-
### NixOS (Flake only)
82-
83-
Add input to the flake:
84-
```nix
85-
gitfetch.url = "github:Matars/gitfetch"
86-
```
87-
And in ``environment.SystemPackages`` add:
88-
```nix
89-
inputs.gitfetch.packages.${system}.default
90-
```
91-
92-
### From the sources
93-
94-
1. Clone this repo
95-
2. `cd` into the repo
96-
3. Then type the below command
97-
98-
### With `pip`
99-
100-
```bash
101-
pip install -e .
102-
```
103-
104-
### With `uv`
105-
106-
```bash
107-
uv tool install git+https://github.com/Matars/gitfetch
108-
```
109-
110-
### With `pipx`
111-
112-
```bash
113-
pipx install git+https://github.com/Matars/gitfetch
114-
```
115-
116-
## Development
117-
118-
This project uses a Makefile for common development tasks. After cloning the repository, you can use these make commands:
119-
120-
### Setup
121-
122-
```bash
123-
make install # Install runtime dependencies
124-
make dev # Install in development mode (editable install)
125-
```
126-
127-
### Testing
128-
129-
```bash
130-
make test # Run tests with pytest
131-
```
132-
133-
### Development Workflow
134-
135-
1. Clone the repository
136-
2. Run `make dev` to set up development environment
137-
3. Make your changes
138-
4. Run `make test` to ensure tests pass
139-
140-
## First Run
141-
142-
On first run, gitfetch will initialize and ask you to configure your default GitHub username:
143-
144-
```bash
145-
gitfetch
146-
```
147-
148-
This creates:
149-
150-
- `~/.config/gitfetch/gitfetch.conf` - Configuration file
151-
- `~/.local/share/gitfetch/cache.db` - SQLite cache database
152-
153-
## Usage
154-
155-
Use default username (from config):
156-
157-
```bash
158-
gitfetch
159-
```
160-
161-
Fetch stats for specific user:
162-
163-
```bash
164-
gitfetch username
165-
```
166-
167-
### Repository-Specific Stats
168-
169-
Display contribution statistics for the current local git repository:
170-
171-
```bash
172-
gitfetch --local
173-
```
174-
175-
Shows commit activity over the last year, built from local git history
176-
177-
```bash
178-
gitfetch --graph-timeline
179-
```
180-
181-
Displays git commit timeline, build from local git history
182-
183-
**Current Limitations:**
184-
185-
- Only shows contribution graph and timeline
186-
- No repository metadata (stars, forks, issues, etc.)
187-
- No language statistics for the repository
188-
- Limited to local git history analysis
189-
190-
If you would like to expand this feature and and parse more repository data, please open an issue or submit a PR!
191-
192-
### Cache Options
193-
194-
Bypass cache and fetch fresh data:
195-
196-
```bash
197-
gitfetch username --no-cache
198-
```
199-
200-
Clear cache:
37+
### From Source
20138

20239
```bash
203-
gitfetch --clear-cache
40+
pip install git+https://github.com/Matars/gitfetch
20441
```
20542

206-
### Configuration
207-
208-
Change the configured git provider:
209-
210-
```bash
211-
gitfetch --change-provider
212-
```
213-
214-
### Visual Customization
215-
216-
Customize contribution block characters:
217-
218-
```bash
219-
gitfetch --custom-box "██"
220-
gitfetch --custom-box ""
221-
gitfetch --custom-box ""
222-
```
223-
224-
Create contribution graph art from predefined shapes:
225-
226-
```bash
227-
gitfetch --shape kitty
228-
gitfetch --shape cat
229-
```
230-
231-
Display multiple shapes with vertical spacing:
232-
233-
```bash
234-
gitfetch --shape kitty cat
235-
gitfetch --shape heart star
236-
```
237-
238-
Set custom graph dimensions:
239-
240-
```bash
241-
gitfetch --width 50 --height 5 # 50 chars wide, 5 days high
242-
gitfetch --width 100 # Custom width, default height
243-
gitfetch --height 3 # Default width, 3 days high
244-
```
245-
246-
Hide month/date labels:
247-
248-
```bash
249-
gitfetch --no-date
250-
```
251-
252-
Show only contribution graph:
253-
254-
```bash
255-
gitfetch --graph-only
256-
```
257-
258-
Hide specific sections:
259-
260-
```bash
261-
gitfetch --no-achievements # Hide achievements
262-
gitfetch --no-languages # Hide languages
263-
gitfetch --no-issues # Hide issues section
264-
gitfetch --no-pr # Hide pull requests
265-
gitfetch --no-account # Hide account info
266-
gitfetch --no-grid # Hide contribution grid
267-
```
268-
269-
Combine multiple options:
270-
271-
```bash
272-
gitfetch --no-date --no-achievements --custom-box "" --width 60
273-
```
274-
275-
## Configuration
276-
277-
Configuration file location: `~/.config/gitfetch/gitfetch.conf`
278-
279-
The configuration file is automatically created on first run. See `docs/providers.md` for detailed provider configuration and `docs/colors.md` for color customization options.
280-
281-
### [DEFAULT] Section
282-
283-
```ini
284-
[DEFAULT]
285-
username = yourusername
286-
cache_expiry_minutes = 15
287-
provider = github
288-
provider_url = https://api.github.com
289-
custom_box = ■
290-
```
291-
292-
- `username`: Your default username (automatically detected)
293-
- `cache_expiry_minutes`: How long to keep cached data (default: 15 minutes)
294-
- `provider`: Git hosting provider (github, gitlab, gitea, sourcehut)
295-
- `provider_url`: API URL for the provider
296-
- `custom_box`: Character used for contribution blocks (default: ■)
297-
298-
**Note**: Custom graph dimensions (`--width`, `--height`) and section visibility flags (`--no-*`) are command-line only and not saved in the configuration file.
299-
However if there is a need for it to be added to the config file please open an issue.
300-
301-
### [COLORS] Section
302-
303-
gitfetch supports extensive color customization using hex color codes or predefined color names.
304-
305-
#### Available Colors
306-
307-
- **Text formatting**: `reset`, `bold`, `dim`
308-
- **Basic colors**: `red`, `green`, `yellow`, `blue`, `magenta`, `cyan`, `white`
309-
- **Special colors**: `orange`, `accent`, `header`, `muted`
310-
- **Contribution graph levels**: `0` (lowest) to `4` (highest)
311-
312-
#### Example Configuration
313-
314-
```ini
315-
[COLORS]
316-
header = #0366d6
317-
accent = #6f42c1
318-
muted = #586069
319-
0 = #ebedf0 # Light gray background
320-
1 = #9be9a8 # Light green background
321-
2 = #40c463 # Medium green
322-
3 = #30a14e # Dark green
323-
4 = #216e39 # Darkest green
324-
```
325-
326-
See `docs/colors.md` for the complete list of supported color names and hex codes.
327-
328-
### Layout Control
329-
330-
gitfetch automatically adapts to your terminal size, but you can control spacing:
331-
332-
```bash
333-
gitfetch --spaced # Enable spaced layout
334-
gitfetch --not-spaced # Disable spaced layout
335-
```
336-
337-
### Custom Dimensions and Coloring Accuracy
338-
339-
The coloring system uses GitHub's standard contribution levels, which are absolute thresholds that remain consistent regardless of the time period or dimensions displayed:
340-
341-
- **0 contributions**: Lightest gray
342-
- **1-2 contributions**: Light green (Level 1)
343-
- **3-6 contributions**: Medium green (Level 2)
344-
- **7-12 contributions**: Dark green (Level 3)
345-
- **13+ contributions**: Darkest green (Level 4)
346-
347-
**What Custom Dimensions Affect:**
348-
349-
- `--width` and `--height` control how many weeks/days are visible
350-
- The coloring thresholds remain the same (GitHub standard)
351-
- You see the same accurate representation, just for a different time period
352-
353-
**When It Might Seem "Inaccurate":**
354-
If you're viewing only recent weeks with generally lower activity, everything might appear in lighter colors. This is actually correct - those weeks truly have fewer contributions compared to your overall history standards.
355-
356-
## Intelligent Layout System
357-
358-
gitfetch automatically selects the best layout based on your terminal dimensions:
359-
360-
- **Full Layout**: Shows all sections (graph, account info, languages, achievements) when there's sufficient space (width ≥ 120 columns)
361-
- **Compact Layout**: Shows graph and key info side-by-side for medium terminals
362-
- **Minimal Layout**: Shows only the contribution graph for narrow terminals
363-
364-
The system considers both terminal width AND height to ensure optimal display. For very short terminals, it may choose more compact layouts even with sufficient width.
365-
366-
You can override automatic layout selection using the `--width` and `--height` flags to set custom graph dimensions, which will force gitfetch to adapt the layout accordingly.
367-
368-
## Supported Providers
369-
370-
gitfetch supports multiple Git hosting platforms:
371-
372-
See `docs/providers.md` for detailed setup instructions for each provider.
373-
374-
## Caching
375-
376-
Cache database location: `~/.local/share/gitfetch/cache.db`
377-
378-
### Upgrading from older versions
379-
380-
If you have an older version of gitfetch (pre v1.1.0) that stored cache in `~/.config/gitfetch/cache.db`, you can safely delete the old cache file:
381-
382-
```bash
383-
rm ~/.config/gitfetch/cache.db
384-
```
385-
386-
## Acknowledgements
43+
## Features
38744

388-
- Inspired by the beautiful contribution graph design from [Kusa](https://github.com/Ryu0118/Kusa) by Ryu0118
389-
- Inspired by the very cool and extremely fun tool [songfetch](https://github.com/fwtwoo/songfetch) by fwtwoo
390-
- The `--text` and `--graph` contribution-graph simulation feature takes inspiration from and adapts ideas from [gelstudios/gitfiti](https://github.com/gelstudios/gitfiti) — credit to the project for the concept of painting the contribution calendar (this implementation only simulates the appearance and does not modify git history).
45+
- Neofetch-style display with ASCII art
46+
- Comprehensive statistics from multiple git hosting platforms
47+
- Smart SQLite-based caching system
48+
- Cross-platform support (macOS and Linux)
49+
- Extensive customization options
39150

392-
### Contributers
51+
## Supported Platforms
39352

394-
- ilonic23: Added nix packaging
395-
- quunarc: small code refactoring
396-
- Zeviraty: Small fixes, color configuration
397-
- Vaishnav-Sabari-Girish: Better installation instructions
398-
- Noirbizzarre: Added installation instructions using uv and pipx
399-
- Fwtwoo: readme update
400-
- Joeliscoding: Added homebrew formula and fixed readme
53+
- **GitHub** - Uses GitHub CLI (gh) for authentication
54+
- **GitLab** - Uses GitLab CLI (glab) for authentication
55+
- **Gitea/Forgejo/Codeberg** - Uses personal access tokens
56+
- **Sourcehut** - Uses personal access tokens
40157

40258
## License
40359

0 commit comments

Comments
 (0)