GitHub - RtiM0/peek: Open social media links without distraction · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
RtiM0
peek
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>1 Commit<br>1 Commit
.agents/skills
.agents/skills
app
app
assets
assets
gradle
gradle
.gitignore
.gitignore
README.md
README.md
build.gradle.kts
build.gradle.kts
gradle.properties
gradle.properties
gradlew
gradlew
gradlew.bat
gradlew.bat
settings.gradle.kts
settings.gradle.kts
View all files
Repository files navigation
Peek for Android
A calm, native space for the links people share.
Kotlin · Jetpack Compose · Android
Paste a link, then read, watch, and browse the content without the noise of the source app.
Screens
Current features
Paste links from the clipboard or open Instagram links directly.
Resolve public Instagram posts, reels, and carousels with photos and videos.
Read comments, load more replies, refresh content, and revisit recent links.
Open media in an edge-to-edge viewer with video playback and carousel navigation.
Cache resolved content locally for a quicker return experience.
Availability
Link type<br>Availability<br>Resolver
Public Instagram posts (/p/)<br>Available<br>Direct logged-out GraphQL resolver
Public Instagram reels (/reel/, /reels/)<br>Available<br>Direct GraphQL resolver, then hidden WebView fallback
Public Instagram carousels<br>Available<br>Instagram resolver chain above
Private posts, login-required content, challenges, consent flows<br>Unsupported<br>No resolver currently available
Resolvers are selected through a shared prioritized resolver chain, so adding a new source does not require changing the viewer UI.
Roadmap
Add more link sources, including Reddit, X/Twitter, TikTok, and YouTube.
Add more Instagram features, including Stories.
Improve sharing, link history, and source-specific viewing experiences.
Principle and architecture
Peek separates link resolution from presentation. Source-specific resolvers normalize content into shared domain models; repositories handle caching and pagination; ViewModels expose screen state; stateless Jetpack Compose UI renders it.
B[Resolver chain]<br>B --> C[Normalized domain model]<br>C --> D[Repository + cache]<br>D --> E[ViewModel state]<br>E --> F[Jetpack Compose UI]<br>" dir="auto">
flowchart LR<br>A[Shared link] --> B[Resolver chain]<br>B --> C[Normalized domain model]<br>C --> D[Repository + cache]<br>D --> E[ViewModel state]<br>E --> F[Jetpack Compose UI]
Loading
The app is a single-activity Kotlin/Jetpack Compose project. domain contains models, repository contracts, and use cases; data contains Instagram resolution, persistence, caching, and fixtures; ui contains navigation, ViewModels, mappers, and rendering.
Contributing
Peek is early and intentionally small. Ideas, source integrations, design improvements, bug reports, and pull requests are all welcome—please include a short description and relevant tests when you can.
Build and verify
Requires JDK 17 and Android SDK 36.
./gradlew :app:assembleDebug<br>./gradlew :app:testDebugUnitTest :app:lintDebug<br>./gradlew :app:validateDebugScreenshotTest<br>./gradlew :app:connectedDebugAndroidTest
Acknowledgements
Peek’s Instagram fetching logic is based on Kittygram.
About<br>Open social media links without distraction<br>Topics<br>instagramsocial-media<br>Resources<br>Readme<br>Activity<br>Stars<br>6 stars<br>Watchers<br>0 watching<br>Forks<br>0 forks<br>Report repository
Releases
Contributors
Languages
You can’t perform that action at this time.