GraphQL client in the terminal
Build and execute GraphQL queries in the terminal.
This project is inspired by https://graphiql-online.com.
Installation
pip3 install gqt
It's recommended to install bat for pretty output.
Controls
- Press
h
or?
for help.
Examples
Set default GraphQL endpoint:
export GQT_ENDPOINT=https://mys-lang.org/graphql
Interactively create a query and execute it:
gqt
{
"statistics": {
"numberOfGraphqlRequests": 3
}
}
Repeat last query:
gqt -r
{
"statistics": {
"numberOfGraphqlRequests": 4
}
}
Print the query (and variables) instead of executing it:
gqt -q
Query:
query Query {
statistics {
numberOfGraphqlRequests
}
}
Variables:
{}
YAML output:
gqt -y
statistics:
numberOfGraphqlRequests: 8
Name queries:
gqt -n stats -y
statistics:
numberOfGraphqlRequests: 8
gqt -n time -y
standardLibrary:
package:
latestRelease:
version: 0.20.0
gqt -n stats -y -r
statistics:
numberOfGraphqlRequests: 9
gqt -n time -y -r
standardLibrary:
package:
latestRelease:
version: 0.20.0
List queries:
gqt -l
Endpoint Query name ---------------------------- ------------ https://mys-lang.org/graphql <default> https://mys-lang.org/graphql time https://mys-lang.org/graphql stats
Make arguments variables by pressing v
and give them as -v
<name>=<value>
on the command line:
gqt -v name=time -y
standardLibrary:
package:
latestRelease:
version: 0.20.0
gqt -r -q
query Query($name: String!) {
standardLibrary {
package(name: $name) {
latestRelease {
version
}
}
}
}
Print the schema:
gqt --print-schema
type Query {
standardLibrary: StandardLibrary!
statistics: Statistics!
activities: [Activity!]!
}
type StandardLibrary {
package(name: String!): Package!
packages: [Package!]
numberOfPackages: Int
numberOfDownloads: Int
}
...
Enpoint option and bearer token in HTTP auth header:
gqt -e https://api.github.com/graphql -H "Authorization: bearer ghp_<value>"
Ideas
Press
c
for compact view, hiding fields that are not selected.Search:
Press
/
to search for visible fields. Press<Up>
and<Down>
to move to the previous and next search hit. Highlight all hits. Press<Enter>
to end the search and move the cursor to the current hit. Press<Esc>
to abort the search and restore the cursor to its pre-search position. Show number of hits.╭─ Query │ ▼ search │ ▶ Book │ ■ title │ ▶ Author │ ■ name │ ▶ film │ ▶ films /fil 1 of 2 matches
Alias?
- Press
a
to create an alias. - Press
d
to delete an alias.
smallPicture
andmediumPicture
are aliases ofpicture
.╭─ Query │ ▶ Book │ ▶ picture │ ▼ smallPicture: picture │ ■ width: 320 │ ■ height: 240 │ ▼ mediumPicture: picture │ ■ width: 800 │ ■ height: 600
- Press
Optionally give schema path on command line. For endpoints that does not support schema introspection.